如何尋找城市所屬的省份或是區(qū)縣所屬的城市

如何尋找城市所屬的省份或是區(qū)縣所屬的城市
前幾天在做數(shù)據(jù)分析的時(shí)候,有許多城市的數(shù)據(jù)但是需要按照省份來(lái)統(tǒng)計(jì)。但一個(gè)個(gè)查對(duì)應(yīng)的省份可能過(guò)于繁瑣,因此就寫(xiě)了一個(gè)函數(shù)來(lái)解決這個(gè)問(wèn)題,代碼如下:

import requests
def search_city(name="上海",level=3):
    res={#一個(gè)字典
        }
    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 "請(qǐng)重新輸入級(jí)別,1搜索?。?搜索市;3搜索縣"

這個(gè)字典將附在文末,該字典也可以通過(guò)百度地圖的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具體數(shù)值可以通過(guò)在https://lbsyun.baidu.com/注冊(cè)得到,注冊(cè)成功后控制臺(tái)-應(yīng)用管理-我的應(yīng)用-創(chuàng)建應(yīng)用
    res=requests.get(url).json()
    return res
res=get_data("中國(guó)")
with open("china.json","w+") as p:
    json.dump(res,p)

使用的時(shí)候只需要如下操作即可:

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

最后附上data_version為20201101的res數(shù)據(jù)的一部分:

{"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": []}, ......
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容