2

我想在 python 中获取用户的位置。我认为这是可能的,因为谷歌能够做到这一点(https://maps.google.com/点击方向键下方的圆圈)。

有谁知道怎么做?

4

1 回答 1

2

如果您想自己动手,有些网站会以各种格式提供有关您的 IP 地址的信息。

http://ipinfo.io/json将给出如下内容:

{
  "ip": "12.34.56.78",
  "hostname": "XXXXX.com",
  "city": "Saint-Lambert",
  "region": "Quebec",
  "country": "CA",
  "loc": "45.5073,-73.5082",
  "org": "AS577 Bell Canada",
  "postal": "J4P"
}

就像 Joran 上面所说的那样,这并不准确。我不在圣兰伯特,我在蒙特利尔,但也不是那么远。

您可以使用 urllib2.urlopen 在 Python 中获取它,然后使用 json 模块将其转换为字典。

import json
import urllib2

def location_lookup():
  try:
    return json.load(urllib2.urlopen('http://ipinfo.io/json'))
  except urllib2.HTTPError:
    return False

location = location_lookup()

# print city and latitude/longitude
print location['city'] + ' (' + location['loc'] + ')'

对于上面的 JSON 输出,此 Python 代码将给出

Saint-Lambert (45.5073,-73.5082)
于 2016-02-14T15:47:32.340 回答