pca_code_utils.py 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. # -*- coding: utf-8 -*-
  2. # @Time : 2022/12/5 10:45
  3. # @Author : XuJiakai
  4. # @File : pca_code_utils
  5. # @Software: PyCharm
  6. import json
  7. import os
  8. _module_path = os.path.dirname(__file__)
  9. f = open(os.path.join(_module_path, 'pca-code.json'), encoding='utf-8')
  10. _code_list = json.loads(f.read())
  11. _code_map = {}
  12. for i in _code_list:
  13. pro_code = i['code']
  14. pro_name = i['name']
  15. _code_map[pro_code] = (pro_name, None, None)
  16. if 'children' in i:
  17. for j in i['children']:
  18. city_code = j['code']
  19. city_name = j['name']
  20. _code_map[city_code] = (pro_name, city_name, None)
  21. if 'children' in j:
  22. for k in j['children']:
  23. con_code = k['code']
  24. con_name = k['name']
  25. _code_map[con_code] = (pro_name, city_name, con_name)
  26. pass
  27. pass
  28. pass
  29. def get_name(province_code, city_code=None, county_code=None):
  30. if province_code is None:
  31. return (None, None, None)
  32. if province_code not in _code_map:
  33. return (None, None, None)
  34. province, city, county = _code_map[province_code]
  35. if city_code and province_code + city_code in _code_map:
  36. city = _code_map[province_code + city_code][1]
  37. if county_code and province_code + city_code + county_code in _code_map:
  38. county = _code_map[province_code + city_code + county_code][2]
  39. return province, city, county
  40. pass
  41. if __name__ == '__main__':
  42. print(get_name('11'))
  43. print(get_name('11', '01'))
  44. print(get_name('11', '01', '01'))
  45. pass