最新的中国县级及以上行政区划代码http://www.stats.gov.cn/tjsj/tjbz/xzqhdm/201703/t20170310_1471429.html
思路:把页面中的内容复制粘贴保存为txt文档,观察文档,不难发现省级的代码编号都以0000结尾,市级的都以00结尾,其他为县级。读到这,可以先码代码:
(1)读取文件内容函数
def get_data(filename):
f = open(filename, "r", encoding="utf-8")
_lines = f.readlines()
f.close()
return _lines
(2)判断是否为省级的函数:
def isProvince(code):
return code.endswith('0000')
string.endwith返回一个布尔值
(3)判断是否为市级的函数:
def isCity(code):
return code.endswith('00')
接下来就是要分析自己想要的json格式了,myboss要的是这样的:
{
"province":[{"name":name,
"code":code,
"cities":[{"name":name,"code":code,"counties":[{"name":name,"code":code},....]},....]
},....]
}
很简单有木有:
for v in cities:
code = v[0]
name = v[1]
if isProvince(code):
p = {
'name': v[1],
'code': v[0],
'cities': []
}
results.append(p)
elif isCity(code):
c = {
'name': v[1],
'code': v[0],
'counties': []
}
p['cities'].append(c)
_cities.append({
'name': v[1],
'code': v[0],
})
else:
c['counties'].append({
'name': v[1],
'code': v[0]
})
代码如上,想到哪里写哪里,妈妈再不用担心我的头发了,嗯还是简单解释一下吧
先判断是不是省级,如果是,在p字典里填写数据,如果不是,再判断是否为城市,如果是,在c字典里填数据,并把字典数据添加进p的cities数组中,以此类推
完整代码见github
地址:https://github.com/sunsy22/cityParse 里的tt.py的文件夹,嗯取名有点随意了