from xml.dom.minidom import Document
import json,ast
import gb2260
import region
# def createProvinceJson(filename):
# """创建省字典文件"""
# data=region.data
#
# dict_province = {}
# region_codes = data.keys()
# for key in region_codes:
# try:
# division = gb2260.get(key)
# if division != None:
# province_division = division.province
# province_name = province_division.name
# province_code = province_division.code
# if province_name not in dict_province:
# dict_province[province_name] = province_code
# else:
# continue
# except Exception:
# continue
# with open(filename, 'w', encoding="utf-8") as f:
# f.write(str(dict_province))
# f.close()
#
# def createProvinceToXml(filename):
# """"创建包含省的xml文件"""
# doc = Document()
# countryRegion = doc.createElement('CountryRegion')
# doc.appendChild(countryRegion)
# countryRegion.setAttribute('Code', '1')
# countryRegion.setAttribute('Name', '中国')
#
#
# with open('pro_json.json','r',encoding='utf-8') as city_json:
# cities=city_json.read()
# cities_dict=ast.literal_eval(cities)
# # cities=dict(cities)
# print(type(cities_dict))
# print(cities_dict)
# pros=cities_dict.keys()
# pros=list(pros)
#
#
# for p in pros:
# state = doc.createElement("State")
# countryRegion.appendChild(state)
# state.setAttribute('Code', cities_dict[p])
# state.setAttribute('Name',p)
# with open(filename,'wb') as f:
# f.write(doc.toprettyxml(indent='\t',encoding='utf-8'))
def turnRegionToJson(json_file):
"""
data={
listdata:[
{"province_name":"北京市","province_code":"100000","data":[
{"city_name":"市辖区","city_code":"101100","data":[
{
"region_name":"东城区","region_code":"101111"
}
,
{}
]}
]},
{}
]
}
"""
#获取
data=region.data
list_city = []
list_province=[]
list_dict_province=[]
region_codes = data.keys()
for key in region_codes:
dict_region = {}
dict_city = {}
dict_province = {}
try:
division = gb2260.get(key)
"""通过gb2260获取区域码的城市和省份编码"""
if division != None and division.county.name!=None :
region_name = division.county.name
region_code = division.county.code
#获取市级单位信息
city_division = division.prefecture
city_name = city_division.name
city_code = city_division.code
#获取省份信息
province_division = division.province
province_name = province_division.name
province_code = province_division.code
#把县区信息放到字典
dict_region = {"region_name":region_name,"region_code":region_code}
# list_region.append(dict_region)
#把省份信息放入列表
if province_code not in list_province:
list_province.append(province_code)
dict_province["province_name"] = province_name
dict_province["province_code"]=province_code
dict_province["data"]=[]
list_dict_province.append(dict_province)
#把市信息放入列表
if city_code not in list_city:
list_city.append(city_code)
dict_city['city_name']=city_name
dict_city['city_code']=city_code
dict_city['data']=[]
# print(dict_city)
for tmp_province in list_dict_province:
if tmp_province['province_code'] == province_code:
# print(tem_province['province_name'])
tmp_list_city=tmp_province["data"]
tmp_list_city.append(dict_city)
tmp_province['data']=tmp_list_city
# print(tmp_province['data'])
#添加city信息到省份下面
for tmp_province in list_dict_province:
if tmp_province['province_code']==province_code:
tmp_cities=tmp_province['data']
for tmp_city in tmp_cities:
if tmp_city['city_code']==city_code:
tmp_region_list=tmp_city['data']
tmp_region_list.append(dict_region)
tmp_city['data']=tmp_region_list
else:
continue
except Exception:
continue
dict_data={"listdata":list_dict_province}
dict_data=json.dumps(dict_data,indent=4,separators=(',',':')).encode('utf-8').decode('raw_unicode_escape')
with open(json_file, 'w', encoding="utf-8") as f:
f.write(dict_data)
return dict_data
if __name__=="__main__":
a=createCityToXml('dict_city.json')
print(a)