| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- import json
- from pathlib import Path
- # 直接导出一个全局映射,供其他脚本直接 import
- _DEFAULT_PATH = Path(__file__).with_name("city.json")
- def build_city_name_to_id():
- city_json_path = Path(_DEFAULT_PATH)
- raw = city_json_path.read_text(encoding="utf-8")
- data_list = json.loads(raw)
- new_dict = {}
- for data in data_list:
- province = data["name"]
- province_id = data["id"]
- sons = data.get("sons") or []
- for son in sons:
- city = son.get("name", "")
- city_id = son.get("id", "")
- new_dict[city] = {"province": province, "province_id": province_id,
- "city": city, "city_id": city_id}
- return new_dict
- def get_city(city_str):
- """可以通过市获取省份"""
- city_dict = build_city_name_to_id()
- province = ""
- city = ""
- if "北京" in city_str:
- city = "北京市"
- province = "北京"
- if "重庆" in city_str:
- city = "重庆市"
- province = "重庆"
- if "上海" in city_str:
- city = "上海市"
- province = "上海"
- if "天津" in city_str:
- city = "天津市"
- province = "天津"
- if "新疆" in city_str:
- province = "新疆维吾尔自治区"
- if "宁夏" in city_str:
- province = "宁夏回族自治区"
- if "内蒙古" in city_str:
- province = "内蒙古自治区"
- if "西藏" in city_str:
- province = "西藏自治区"
- if "广西" in city_str:
- province = "广西壮族自治区"
- city_id = province_id = 0
- for _city, _city_value in city_dict.items():
- city_name = _city.replace("市", "")
- if city_name in city_str:
- province = _city_value["province"]
- province_id = _city_value["province_id"]
- city = _city
- city_id = _city_value["city_id"]
- break
- return city_id, province_id, city, province
- if __name__ == "__main__":
- city_id, province_id, city, province = get_city("玉林")
- print(city_id, province_id, city, province)
|