zoukankan      html  css  js  c++  java
  • 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|浙江省|宁波市|江北区
  • 相关阅读:
    【Linux高频命令专题(24)】grep
    【PSR规范专题(6)】PSR-7 HTTP消息接口【转】
    【redis专题(10)】KEY设计原则与技巧
    【redis专题(9)】事务
    【redis专题(8)】命令语法介绍之通用KEY
    linux 之 jq
    PHP Rabbitmq 报错Broken pipe
    Laravel 跨框架队列交互
    解决Linux下编译.sh文件报错 unexpected operator Syntax error: word unexpected
    安装QConf 报错及解决方案
  • 原文地址:https://www.cnblogs.com/shijingjing07/p/7474570.html
Copyright © 2011-2022 走看看