前言 偶然接触到这个东西,记录一下
一、申请高德的Key 高德开放平台网址
注册登录后,点击右上角头像旁边的控制台
点击“我的应用”,然后右边有个“创建新应用”,点击后输入一些内容,就创建成功了,key
就获取到了
二、要转换的地址放入文件 可选 csv、xlsx、txt,推荐 txt ,因为 txt 无论如何都不会报错,csv 和 xlsx 高概率会报 UTF-8 编码无法转换的错,网上的解决方案都是修改编码,这样不行,所以还是 txt 吧
一个地址换一行,如果用 xlsx 的话也一样,一个地址换一行
三、编写代码 这代码也不是我本人写的,我也不怎么会 Python ,所以没有注释讲解。。。
将下面的 key
替换成你刚刚创建的新应用下面的 key,然后地址文件改成你们刚刚创建的 txt
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 import requestsimport codecsfrom openpyxl import Workbookwb = Workbook() sheet = wb.active def get_location (address, i ): print (i) url = "https://restapi.amap.com/v3/geocode/geo" data = { 'key' : 'a8c3f94ebc2fea82c283effa241aa066' , 'address' : address } r = requests.post(url, data=data).json() sheet["A{0}" .format (i)].value = address.strip('\n' ) print (r) if r['status' ] == '1' : if len (r['geocodes' ]) > 0 : GPS = r['geocodes' ][0 ]['location' ] sheet["B{0}" .format (i)].value = '[' + GPS + ']' else : sheet["B{0}" .format (i)].value = '[]' else : sheet["B{0}" .format (i)].value = '未找到' f = codecs.open (r"D:\下载\Documents\地点.txt" , "r" , "utf-8" ) i = 0 while True : line = f.readline() i = i + 1 if not line: f.close() wb.save(r"D:\下载\Documents\经纬度信息.xlsx" ) break get_location(line, i)
四、运行结果 你设置的路径下生成了结果文件,打开看看
准确度还挺高,这种直接写小区名和学校名都能识别到,高德 niubility
总结