如何寻找城市所属的省份或是区县所属的城市

如何寻找城市所属的省份或是区县所属的城市
前几天在做数据分析的时候,有许多城市的数据但是需要按照省份来统计。但一个个查对应的省份可能过于繁琐,因此就写了一个函数来解决这个问题,代码如下:

import requests
def search_city(name="上海",level=3):
    res={#一个字典
        }
    provinces=res["districts"][0]["districts"]
    if (level==1 or level==2 or level==3):
        res=[]
        for province in provinces:
            cities=province["districts"]
            province_name=province["name"]
            if (name in province_name and level==1):
                res.append({"province_name":province_name})
            for city in cities:
                districts=city["districts"]
                city_name=city["name"]
                if (name in city_name and level==2):
                    res.append({"province_name":province_name,
                                "city_name:":city_name})
                for district in districts:
                    district_name=district["name"]
                    if (name in district_name and level==3):
                        res.append({"province_name":province_name,
                                    "city_name":city_name,
                                    "district_name":district_name})
        return res
    else:
        return "请重新输入级别,1搜索省;2搜索市;3搜索县"

这个字典将附在文末,该字典也可以通过百度地图的api获取,代码如下:

import requests
import json
def get_data(keyword):
    url='http://api.map.baidu.com/api_region_search/v1/?keyword='+\
    keyword+'&sub_admin=3&ak=        '
    #ak具体数值可以通过在https://lbsyun.baidu.com/注册得到,注册成功后控制台-应用管理-我的应用-创建应用
    res=requests.get(url).json()
    return res
res=get_data("中国")
with open("china.json","w+") as p:
    json.dump(res,p)

使用的时候只需要如下操作即可:

import json
with open("china.json","r+") as d:
    res=json.load(d)

最后附上data_version为20201101的res数据的一部分:

{"status": 0, "data_version": "20201101", "result_size": 1, "districts": [{"code": "", "name": "\u4e2d\u534e\u4eba\u6c11\u5171\u548c\u56fd", "level": 0, "districts": [{"code": "", "name": "\u5317\u4eac\u5e02", "level": 1, "districts": [{"code": "", "name": "\u5317\u4eac\u5e02", "level": 2, "districts": [{"code": "", "name": "\u4e1c\u57ce\u533a", "level": 3, "districts": []}, ......
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容