city_name_to_id.py 924 B

12345678910111213141516171819202122232425262728293031323334
  1. import os
  2. from pathlib import Path
  3. from area.area import AreaService
  4. # 导出供外部使用
  5. _DEFAULT_PATH = Path(__file__).with_name("city.json")
  6. _area_service = AreaService(str(_DEFAULT_PATH))
  7. def get_city(city_str):
  8. """可以通过市获取省份(重构版,底层使用 Trie 树解析)"""
  9. city_id = 0
  10. province_id = 0
  11. city = ""
  12. province = ""
  13. if not city_str:
  14. return city_id, province_id, city, province
  15. match = _area_service.search_area(city_str)
  16. if match:
  17. city_id = match.city_id
  18. province_id = match.province_id
  19. city = match.city
  20. province = match.province
  21. return city_id, province_id, city, province
  22. def get_city_2(city_str):
  23. """兼容旧版本的调用"""
  24. return get_city(city_str)
  25. if __name__ == "__main__":
  26. city_id, province_id, city, province = get_city("玉林")
  27. print(city_id, province_id, city, province)