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('
').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("
")

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|浙江省|宁波市|江北区
原文地址:https://www.cnblogs.com/shijingjing07/p/7474570.html