python地址解析经纬度,城市
1.地址列表
1.txt
上海市普陀区梅川路299-301号 浙江省杭州市拱墅区丰登路305-311号1层 江苏省南京市鼓楼区碧树园86号101室 浙江省宁波市江北区范江岸路38弄6号-10号1层商铺 浙江省宁波市江东区福明路876-880号 浙江省宁波市江北区清湖路8号 上海市普陀区石泉路436-440号底层 浙江省宁波市海曙区民丰街176号~178号(近蓝天路)
2.调用百度地图API,解析经纬度,根据经纬度,获取城市
以下代码使用python3
import requests import json with open("1.txt","r", encoding="utf-8") as fr: with open("2.txt", "w", encoding="utf-8") as fw: for line in fr.readlines(): # 去除换行符 line = line.strip('\n').replace('#',' ') # 去除特殊字符 line1 = line.replace('#', ' ').replace('/',' ') # 地址获取经纬度 baiduUrl = "http://api.map.baidu.com/geocoder/v2/?ak=XXXXXXX&callback=renderOption&address=%s&output=json" % ( line1) req = requests.get(baiduUrl) content = req.text content = content.replace("renderOption&&renderOption(", "") content = content[:-1] baiduAddr = json.loads(content) lng = baiduAddr["result"]["location"]["lng"] lat = baiduAddr["result"]["location"]["lat"] # 经纬度获取城市 baiduUrl = "http://api.map.baidu.com/geocoder/v2/?ak=XXXXXXX&callback=renderReverse&location=%s,%s&output=json&pois=0" % ( lat, lng) req = requests.get(baiduUrl) content = req.text content = content.replace("renderReverse&&renderReverse(", "") content = content[:-1] baiduAddr = json.loads(content) province = baiduAddr["result"]["addressComponent"]["province"] city = baiduAddr["result"]["addressComponent"]["city"] district = baiduAddr["result"]["addressComponent"]["district"] # 写入2.txt文件 new_line = line + "|" + str(lng) + "|" + str(lat) + "|" + province + "|" + city + "|" + district fw.write(new_line) fw.write("\n")
3.运行结果:
2.txt
上海市浦东新区栖山路215号-1|121.55412741874005|31.250531111923426|上海市|上海市|浦东新区 江苏省南京市鼓楼区凤凰西街222-1|118.7466970802996|32.0465940656867|江苏省|南京市|鼓楼区 上海市闵行区华林路229弄34号|121.36316671139555|31.143942453000527|上海市|上海市|闵行区 上海市普陀区梅川路299-301号|121.40369575422491|31.244826892994706|上海市|上海市|普陀区 浙江省杭州市拱墅区丰登路305-311号1层|120.15884493257121|30.34473201035828|浙江省|杭州市|拱墅区 江苏省南京市鼓楼区碧树园86号101室|118.76505691316264|32.06860445880062|江苏省|南京市|鼓楼区 浙江省宁波市江北区范江岸路38弄6号-10号1层商铺|121.54905723315113|29.899196446280598|浙江省|宁波市|江北区 浙江省宁波市江东区福明路876-880号|121.59768721212123|29.862162545362594|浙江省|宁波市|江东区 浙江省宁波市江北区清湖路8号|121.56583297445964|29.899867569052006|浙江省|宁波市|江北区