前提条件:
需要申请一个web服务类型的key(xxxxxxxxx为申请的key)
import requests
import pypinyin
import json
'''
获取地址坐标
'''
def pinyin(word):
s = ''
for i in pypinyin.pinyin(word, style=pypinyin.NORMAL):
s += ''.join(i)
return s
def get_city_location(name):
url = "https://restapi.amap.com/v3/geocode/geo?address={}&output=json&key=xxxxxxxxxxxxxxxx".format(name)
# print(url)
res_text = requests.get(url).text
# print(res_text)
# print(json.loads(res_text).get('status'))
# print(json.loads(res_text).get('geocodes')[0].get('city'))
# print(json.loads(res_text).get('geocodes')[0].get('location'))
# print(json.loads(res_text).get('geocodes')[0].get('location').split(',')[0])
# print(json.loads(res_text).get('geocodes')[0].get('location').split(',')[1])
retval = json.loads(res_text).get('status')
city_list = []
if retval == '1':
city_name = json.loads(res_text).get('geocodes')[0].get('city')
longitude = json.loads(res_text).get('geocodes')[0].get('location').split(',')[0]
latitude = json.loads(res_text).get('geocodes')[0].get('location').split(',')[1]
tmpl = {
"key": pinyin(city_name),
"latitude": float(latitude),
"longitude": float(longitude),
"name": city_name
}
city_list.append(tmpl)
return json.dumps(city_list, ensure_ascii=False)
return None
print(get_city_location("苏州"))
输出结果:
[{"key": "suzhoushi", "latitude": 31.298886, "longitude": 120.585315, "name": "苏州市"}]