[python高德]行政区查询、调用wbe服务api获取省、市、区经纬度信息
生活随笔
收集整理的這篇文章主要介紹了
[python高德]行政区查询、调用wbe服务api获取省、市、区经纬度信息
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
[python&高德]調(diào)用wbe服務(wù)api獲取省、市、區(qū)經(jīng)緯度信息
簡介:
? 基于高德開放的api接口中行政區(qū)域查詢接口實(shí)現(xiàn),快速的查找特定的行政區(qū)域信息,查詢后直接導(dǎo)致csv數(shù)據(jù)到本地。該接口官方介紹鏈接:https://lbs.amap.com/api/webservice/guide/api/district
一、獲取高德web申請key方法移步這里:
https://lbs.amap.com/api/webservice/guide/create-project/get-ke
二、完整代碼,輸入key即可運(yùn)行:
import requests import pandas as pd import time# 行政區(qū)域查詢 https://lbs.amap.com/api/webservice/guide/api/district# 高德web key key = 'xxxx' # 高德地圖API # 只支持單個關(guān)鍵詞語搜索關(guān)鍵詞支持,行政區(qū)名稱、citycode、adcodewhile True: # 創(chuàng)建循環(huán),如果查詢結(jié)果成功,跳出循環(huán)keywords = input('請輸入需查詢的關(guān)鍵詞,例如,搜索國家(中國),搜索省份(例如山東),能夠顯示市(例如濟(jì)南),區(qū)(例如歷下區(qū)):\n')# 設(shè)置顯示下級行政區(qū)級數(shù),可選值:0、1、2、3subdistrict = input('設(shè)置顯示下級行政區(qū)級數(shù),輸入數(shù)字:0、1、2、3:\n')# 此項(xiàng)控制行政區(qū)信息中返回行政區(qū)邊界坐標(biāo)點(diǎn);base:不返回行政區(qū)邊界坐標(biāo)點(diǎn);all:只返回當(dāng)前查詢district的邊界值,不返回子節(jié)點(diǎn)的邊界值;extensions = 'base'url = f'http://restapi.amap.com/v3/config/district?key={key}&keywords={keywords}&subdistrict={subdistrict}&extensions={extensions}'r = requests.get(url)data = r.json()# print(data)建議結(jié)果列表 = data['count']# print(建議結(jié)果列表)if 建議結(jié)果列表 == '0':print('參數(shù)輸入錯誤,請重新輸入!返回值:', 建議結(jié)果列表)else:break行政區(qū)數(shù)據(jù)列表 = [] # 創(chuàng)建空列表,用戶存儲查詢的數(shù)據(jù)s1 = data['districts'][0]['adcode'] # 區(qū)域編碼 s2 = data['districts'][0]['name'] # 行政區(qū)名稱 s3 = data['districts'][0]['center'] # 區(qū)域中心點(diǎn) s4 = data['districts'][0]['level'] # 行政區(qū)劃級別 s5 = data['districts'][0]['citycode'] # 城市編碼 if s4 == 'country':行政區(qū)數(shù)據(jù)列表.append([s2, '', '', '', '', s1, s3, s4, s5]) # 國家 if s4 == 'province':行政區(qū)數(shù)據(jù)列表.append(['', s2, '', '', '', s1, s3, s4, s5]) # 省份 if s4 == 'city':行政區(qū)數(shù)據(jù)列表.append(['', '', s2, '', '', s1, s3, s4, s5]) # 市 if s4 == 'district':行政區(qū)數(shù)據(jù)列表.append(['', '', '', s2, '', s1, s3, s4, s5]) # 區(qū)縣 if s4 == 'street':行政區(qū)數(shù)據(jù)列表.append(['', '', '', '', s2, s1, s3, s4, s5]) # 街道一級行政區(qū)數(shù)據(jù) = data['districts'][0]['districts'] 一級行政區(qū)個數(shù) = len(一級行政區(qū)數(shù)據(jù)) #print(一級行政區(qū)個數(shù))for i in range(0, 一級行政區(qū)個數(shù)):s1 = 一級行政區(qū)數(shù)據(jù)[i]['adcode']s2 = 一級行政區(qū)數(shù)據(jù)[i]['name']s3 = 一級行政區(qū)數(shù)據(jù)[i]['center']s4 = 一級行政區(qū)數(shù)據(jù)[i]['level']s5 = 一級行政區(qū)數(shù)據(jù)[i]['citycode']if s4 == 'country':行政區(qū)數(shù)據(jù)列表.append([s2, '', '', '', '', s1, s3, s4, s5]) # 國家if s4 == 'province':行政區(qū)數(shù)據(jù)列表.append(['', s2, '', '', '', s1, s3, s4, s5]) # 省份if s4 == 'city':行政區(qū)數(shù)據(jù)列表.append(['', '', s2, '', '', s1, s3, s4, s5]) # 市if s4 == 'district':行政區(qū)數(shù)據(jù)列表.append(['', '', '', s2, '', s1, s3, s4, s5]) # 區(qū)縣if s4 == 'street':行政區(qū)數(shù)據(jù)列表.append(['', '', '', '', s2, s1, s3, s4, s5]) # 街道二級行政區(qū)數(shù)據(jù) = 一級行政區(qū)數(shù)據(jù)[i]['districts']二級行政區(qū)個數(shù) = len(二級行政區(qū)數(shù)據(jù))for x in range(0, 二級行政區(qū)個數(shù)):s1 = 二級行政區(qū)數(shù)據(jù)[x]['adcode']s2 = 二級行政區(qū)數(shù)據(jù)[x]['name']s3 = 二級行政區(qū)數(shù)據(jù)[x]['center']s4 = 二級行政區(qū)數(shù)據(jù)[x]['level']s5 = 二級行政區(qū)數(shù)據(jù)[x]['citycode']if s4 == 'country':行政區(qū)數(shù)據(jù)列表.append([s2, '', '', '', '', s1, s3, s4, s5]) # 國家if s4 == 'province':行政區(qū)數(shù)據(jù)列表.append(['', s2, '', '', '', s1, s3, s4, s5]) # 省份if s4 == 'city':行政區(qū)數(shù)據(jù)列表.append(['', '', s2, '', '', s1, s3, s4, s5]) # 市if s4 == 'district':行政區(qū)數(shù)據(jù)列表.append(['', '', '', s2, '', s1, s3, s4, s5]) # 區(qū)縣if s4 == 'street':行政區(qū)數(shù)據(jù)列表.append(['', '', '', '', s2, s1, s3, s4, s5]) # 街道三級行政區(qū)數(shù)據(jù) = 二級行政區(qū)數(shù)據(jù)[x]['districts']三級行政區(qū)個數(shù) = len(三級行政區(qū)數(shù)據(jù))for y in range(0, 三級行政區(qū)個數(shù)):s1 = 三級行政區(qū)數(shù)據(jù)[y]['adcode']s2 = 三級行政區(qū)數(shù)據(jù)[y]['name']s3 = 三級行政區(qū)數(shù)據(jù)[y]['center']s4 = 三級行政區(qū)數(shù)據(jù)[y]['level']s5 = 三級行政區(qū)數(shù)據(jù)[y]['citycode']if s4 == 'country':行政區(qū)數(shù)據(jù)列表.append([s2, '', '', '', '', s1, s3, s4, s5]) # 國家if s4 == 'province':行政區(qū)數(shù)據(jù)列表.append(['', s2, '', '', '', s1, s3, s4, s5]) # 省份if s4 == 'city':行政區(qū)數(shù)據(jù)列表.append(['', '', s2, '', '', s1, s3, s4, s5]) # 市if s4 == 'district':行政區(qū)數(shù)據(jù)列表.append(['', '', '', s2, '', s1, s3, s4, s5]) # 區(qū)縣if s4 == 'street':行政區(qū)數(shù)據(jù)列表.append(['', '', '', '', s2, s1, s3, s4, s5]) # 街道df = pd.DataFrame(行政區(qū)數(shù)據(jù)列表, columns=['國家', '省份', '市', '區(qū)縣', '街道', '區(qū)域編碼', '區(qū)域中心點(diǎn)', '行政區(qū)劃分級別', '城市編碼']) print(df) 路徑 = '行政區(qū)域查詢-' + str(time.strftime("%Y-%m-%d %H時%M分%S秒", time.localtime())) + '.csv' df.to_csv(路徑) input('查詢完成,結(jié)果輸出在本程序目錄下:' + 路徑)全文完。
總結(jié)
以上是生活随笔為你收集整理的[python高德]行政区查询、调用wbe服务api获取省、市、区经纬度信息的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 每日一题(11)—— 结构体大小
- 下一篇: STM32项目(二) —— 车灯测试台架