python调用高德地图API,获取省、市、区、经纬度信息

python调用高德地图API,获取省、市、区、经纬度信息,打算用此数据作为数据分析的位置数据。

第一步:高德注册账号

https://lbs.amap.com/  推荐使用支付宝认证

第二步:注册应用

控制台中-我的应用-创建新应用

第三步:添加key

控制台-我的应用-添加key

第四步:写代码,调用

我的代码中有解析pyecharts的城市经纬度的代码

主要包含几个函数,我是分开调用的。

1、transform 调用高德的API的函数

2、jxjson从文件中获取全国区县单位的位置信息

3、hxbjson解析文本,获取单位的位置信息

4、from_gd_to_json从高德批量获取位置信息

代码如下:

import json
import requests
import pandas as pd
from requests.exceptions import ReadTimeout, ConnectTimeout
import sys
import io
sys.stdout=io.TextIOWrapper(sys.stdout.buffer,encoding='utf-8')
def transform(geo):
	parameters={'address':geo,'key':'0ff9015482d21063fa15129e71dbc5c8'}
	base="https://restapi.amap.com/v3/geocode/geo"
	loc=0
	try:
		response=requests.get(base,parameters,timeout=2)
		if response.status_code==200:
			answer = response.json()
			#print(answer.keys())
			print(answer)
			loc= answer["info"]
		else:
			pass
	except(ReadTimeout, ConnectTimeout):
		pass
	return answer
#从文件中获取全国区县单位的位置信息
def jxjson():
	filename=r'D:/Python37/Lib/site-packages/pyecharts/datasets/city_coordinates.json'
	with open(filename,'r',encoding='utf-8') as f:
		jsontext=json.load(f)
	list1=list(jsontext.keys())
	list2=list(jsontext.values())
	for i in range(len(jsontext)):
		pass
		print(list1[i]+"-"+str(list2[i]))
#解析文本,获取单位的位置信息
def hxbjson():
	filename=r'E:/python/hxb/test.json'
	with open(filename,'r',encoding='utf-8') as f:
		#jsontext=json.load(f)
		listf=f.readlines()
		pass
	jsontext={'a':'aval','b':'bval'}
	list1=list(jsontext.keys())
	list2=list(jsontext.values())
	for i in range(len(listf)):
		s1=str(listf[i])
		s21=s1.replace("'","\"")
		json_data=json.loads(s21)
		if(len(json_data['geocodes'])>0):
			info=json_data['geocodes'][0]
			orgname=info['formatted_address']
			sf=info['province']
			city=info['city']
			district=info['district']
			location=info['location']
			if(len(district)==0):
				#print("bucunzai")
				district="1"
			print(orgname+"-"+sf+"-"+city+"-"+district+"-"+"-"+location)
#从高德批量获取位置信息
def from_gd_to_json():
	filename='E:/python/hxb/gpcode.lst'
	data=pd.read_csv(filename)
	arrs=[]
	for i in range(len(data)):
		newval=str(data['地址关键字'][i])
		print(newval)
		arrs.append(newval)
		jsdata=transform(newval)
		filename=r'E:/python/hxb/%s.json' % ('test')
		with open(filename,"a+",encoding="utf-8") as f:
			f.writelines(str(jsdata)+'\n')
	return arrs
def main():
	hxbjson()
if __name__ == '__main__':
	main()

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

pentiumcpu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值