city_name_to_id_2.py 832 B

123456789101112131415161718192021222324252627282930
  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. if __name__ == "__main__":
  23. city_id, province_id, city, province = get_city("玉林")
  24. print(city_id, province_id, city, province)