通过百度API获取城市经纬度(1)

本文介绍了使用Python通过两种方式调用百度地图API获取地理位置坐标的方法。第一种方法使用urllib进行URL编码并读取JSON数据;第二种方法利用requests模块简化请求过程。这两种方法均能有效地获取到指定地点的经纬度信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

百度API秘钥,具体请参照其他教程。

# 第一种,urllib把url转为urlencode,在读取网页,在json读取内容
from urllib import parse query = { 'key':'zSSQXXXXXXXXX', 'address':'广州', 'output':'json' } base = 'http://api.map.baidu.com/geocoder?' url = base + parse.urlencode(query)
In [17]:
url
Out[17]:
'http://api.map.baidu.com/geocoder?key=zSSQXXXXXXX&address=%E5%B9%BF%E5%B7%9E&output=json'
In [18]:
import urllib.request
uri = urllib.request.urlopen(url)
In [19]:
uri
Out[19]:
<http.client.HTTPResponse at 0x5d91cb0>
In [20]:
adds = uri.read().decode('utf-8')
In [21]:
adds
Out[21]:
'{\n    "status":"OK",\n    "result":{\n        "location":{\n            "lng":113.30765,\n            "lat":23.120049\n        },\n        "precise":0,\n        "confidence":12,\n        "level":"\\u57ce\\u5e02"\n    }\n}'
In [22]:
import json
data = json.loads(adds)
data
Out[22]:
{'result': {'confidence': 12,
  'level': '城市',
  'location': {'lat': 23.120049, 'lng': 113.30765},
  'precise': 0},
 'status': 'OK'}
In [23]:
lat = data['result']['location']['lat']
lng = data['result']['location']['lng']
In [28]:
print('lat:%s'%lat)
print('lng:%s'%lng)
lat:23.120049
lng:113.30765
In [29]:
data['result']
Out[29]:
{'confidence': 12,
 'level': '城市',
 'location': {'lat': 23.120049, 'lng': 113.30765},
 'precise': 0}
In [34]:
data['result']['location']
Out[34]:
{'lat': 23.120049, 'lng': 113.30765}
In [ ]:
# 第二种,利用requets模块
In [45]:
address = '广州'
url = 'http://api.map.baidu.com/geocoder?output=json&key=zSSQF0IkTliIBjcZlbNeNaDsWIHrCS0u&address=' + str(address)
In [46]:
res = requests.get(url)
data = res.json()
data
Out[46]:
{'result': {'confidence': 12,
  'level': '城市',
  'location': {'lat': 23.120049, 'lng': 113.30765},
  'precise': 0},
 'status': 'OK'}
In [49]:
lat = float(data['result']['location']['lat'])
lng = float(data['result']['location']['lng'])
In [50]:
print('lat:%s'%lat,'lng:%s'%lng)
lat:23.120049 lng:113.30765

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值