文档章节

行政区划代码转为字典形式

漫步海边小路
 漫步海边小路
发布于 06/23 14:31
字数 479
阅读 20
收藏 0
点赞 0
评论 0

原数据为: http://www.mca.gov.cn/article/sj/xzqh/2018/201804-12/201804-06041553.html

手动替换了一下格式,注意有些省直属县(第三位为9的)需要手动处理一下,并使用下面的代码处理.

# 输入格式
s = """
110000:北京市
110101:东城区
110102:西城区
110105:朝阳区
110106:丰台区
110107:石景山区
110108:海淀区
110109:门头沟区
110111:房山区
110112:通州区
110113:顺义区
110114:昌平区
110115:大兴区
110116:怀柔区
110117:平谷区
110118:密云区
110119:延庆区
"""
slist = s.split("\n")

province_code = ""  # 省级单位的代码
city_code = ""  # 市级单位的代码
province_name = ""  # 省级单位的名字
city_name = ""  # 市级单位的名字
res = {}  # 要数出的结果

for index, i in enumerate(slist):
    if not i:
        continue
    i = i.split(":")
    code = i[0]
    name = i[1]
    _province_code = code[0:2]

    if _province_code != province_code and code.endswith("0000"):  # 省级代码以 0000 结尾
        province_code = _province_code
        province_name = name
        city_code = ""  # 清空市的信息
        city_name = ""  # 清空市的信息
        res[name] = {'code': code}  # 添加省的字典
    else:  # 遍历市
        _city_code = code[2:4]
        if _city_code != city_code and code.endswith("00"):  # 省级代码以 0000 结尾
            city_code = _city_code
            city_name = name
            res[province_name][city_name] = {'code': code}  # 添加市的字典
        else: # 遍历县
            print(province_name, city_name, name)
            if city_name:
                res[province_name][city_name][name] = {'code': code}  # 添加县的字典
            elif name:
                res[province_name][name] = {'code': code}  # 添加县的字典,直辖市的

处理结果为:

{
	"北京市": {
		"code": "110000",
		"东城区": {
			"code": "110101"
		},
		"西城区": {
			"code": "110102"
		},
		"朝阳区": {
			"code": "110105"
		},
		"丰台区": {
			"code": "110106"
		},
		"石景山区": {
			"code": "110107"
		},
		"海淀区": {
			"code": "110108"
		},
		"门头沟区": {
			"code": "110109"
		},
		"房山区": {
			"code": "110111"
		},
		"通州区": {
			"code": "110112"
		},
		"顺义区": {
			"code": "110113"
		},
		"昌平区": {
			"code": "110114"
		},
		"大兴区": {
			"code": "110115"
		},
		"怀柔区": {
			"code": "110116"
		},
		"平谷区": {
			"code": "110117"
		},
		"密云区": {
			"code": "110118"
		},
		"延庆区": {
			"code": "110119"
		}
	},
}

© 著作权归作者所有

共有 人打赏支持
漫步海边小路
粉丝 1
博文 59
码字总数 11592
作品 1
威海
人事招聘
Winform开发框架之字典管理模块的更新,附上最新2013年全国最新县及县以上行政区划代码sql脚本

在很多项目里面,字典管理是必备的项目模块,而这个又是比较通用的功能,因此可以单独做成一个通用字典管理,例如这个模块,可以通过集成的方式,使用在我的《Winform开发框架》、《WCF开发框...

walb呀
2017/12/04
0
0
总结几个有关国家行政区划的问题

(本文仅作抛砖引玉之用,如诸位有更好的观点或方法可在本博客下方留言,谢谢) 如果填写表单时国家行政区划数据并非手工填写,而是依靠级联菜单或弹窗选择,就会有一些问题,主要涉及以下三...

北风其凉
2016/10/11
65
0
input搜索下拉提示框,支持拼音检索、过滤、级联、自定义数据源的ajax异步下拉展示

为解决大数据量下拉字典效率及操作问题,整理出通用的数据字典模块,所有字典数据可在数据库维护,在大数据量时采用分页下拉的展示方式,同时支持拼音简拼搜索,代码项、代码值搜索等,支持无...

神话无名
06/07
0
0
Go 语言实现的中国行政区划代码包 - gbt2260

中国行政区划代码 中华人民共和国县以上行政区划代码的golang包 安装 go get github.com/ppmoon/gbt2260 或者你使用vgo vgo get github.com/ppmoon/gbt2260 如何使用? 输入一个行政区域代码...

ppmoon
06/13
0
0
Neo4j & Python 构建中国行政区划图

哇标题看起来挺厉害的,其实没有很难啦,而且非常有趣。 我为什么要做这个 我本人就很讨厌看到这种标题——我为什么xxx?喵喵喵?你为什么xxx关我什么事?唉,人总是会变成自己讨厌的人嘛。 ...

pujiaxun
2017/11/10
0
0
YAML 语言教程

编程免不了要写配置文件,怎么写配置也是一门学问。 YAML 是专门用来写配置文件的语言,非常简洁和强大,远比 JSON 格式方便。 本文介绍 YAML 的语法,以 JS-YAML 的实现为例。你可以去在线 ...

阮一峰
2016/07/04
0
0
处理logs,进行分析web展示。

涉及:读取写入文件,将文件转为字典;将字典内容转为元组;将元组进行排序,lambda表达式,html知识。 python处理日志 打印ip出现前十名 第一段将ip以空格分割,n结尾。默认为0,每次重复一...

青春掌柜
2016/08/04
0
0
Python自动化开发学习3-2-匿名函数、内置函数

下面这部分内容计划应该是第三周讲的,但是应该是当时来不及,第四周上来的内容又比较重要,就放到了第四周讲完后才讲了。 匿名函数 如果函数值使用一次,并且结构结单(需要一行表达式),就...

骑士救兵
2017/11/09
0
0
如何通过手机号初始化所属地区

在用户系统中常常会需要用户绑定手机号、填写联系地址,而一旦表单一多,就会让用户感觉异常繁琐,注册的门坎也就上升。这时候一个贴心的细节优化就会很好地改善用户体验,让用户眼前一亮。那...

一个路人甲
2016/11/15
589
1
java验证身份证号码及编码规则和提取相应信息

身份证前6位【ABCDEF】为行政区划数字代码(简称数字码)说明(参考《GB/T 2260-2007 中华人民共和国行政区划代码》):该数字码的编制原则和结构分析,它采用三层六位层次码结构,按层次分别...

李长春
2011/11/01
0
1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Spring Cloud Gateway 接口文档聚合实现

在微服务架构下,通常每个微服务都会使用Swagger来管理我们的接口文档,当微服务越来越多,接口查找管理无形中要浪费我们不少时间,毕竟懒是程序员的美德。 由于swagger2暂时不支持webflux 走...

冷冷gg
35分钟前
13
0
流利阅读笔记30-20180719待学习

1.今日导读 2.带着问题听讲解 3.新闻正文(中英文对照) 4.重点词汇 5.拓展内容

aibinxiao
38分钟前
1
0
OSChina 周五乱弹 —— 我们是食物链的最底层

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @温家成 :分享谢安琪的单曲《姿色份子》 《姿色份子》- 谢安琪 手机党少年们想听歌,请使劲儿戳(这里) @贪吃飒:最近p2p怎么了、半个月爆了...

小小编辑
51分钟前
6
1
Android Studio 3.0 之后打包apk出现应用未安装问题

1、废话 出现这个问题的原因,并不是只有一个,而是有多个原因,不懂的估计会被搞得一头雾水,下面我列举的是我遇到的几种问题和网友遇到的几种问题,但不一定是全部,也有可能有些莫名其妙的...

她叫我小渝
今天
0
0
前端基础

1. get请求传参长度的误区 误区:我们经常说get请求参数的大小存在限制,而post请求的参数大小是无限制的。 实际上HTTP 协议从未规定 GET/POST 的请求长度限制是多少。对get请求参数的限制是...

wenxingjun
今天
0
0
拦截SQLSERVER的SSL加密通道替换传输过程中的用户名密码实现运维审计(一)

工作准备 •一台SQLSERVER 2005/SQLSERVER 2008服务 •SQLSERVER jdbc驱动程序 •Java开发环境eclipse + jdk1.8 •java反编译工具JD-Core 反编译JDBC分析SQLSERVER客户端与服务器通信原理 SQ...

紅顏為君笑
今天
9
0
jQuery零基础入门——(六)修改DOM结构

《jQuery零基础入门》系列博文是在廖雪峰老师的博文基础上,可能补充了个人的理解和日常遇到的点,用我的理解表述出来,主干出处来自廖雪峰老师的技术分享。 在《零基础入门JavaScript》的时...

JandenMa
今天
0
0
linux mint 1.9 qq 安装

转: https://www.jianshu.com/p/cdc3d03c144d 1. 下载 qq 轻聊版,可在百度搜索后下载 QQ7.9Light.exe 2. 去wine的官网(https://wiki.winehq.org/Ubuntu) 安装 wine . 提醒网页可以切换成中...

Canaan_
今天
0
0
PHP后台运行命令并管理运行程序

php后台运行命令并管理后台运行程序 class ProcessModel{ private $pid; private $command; private $resultToFile = ''; public function __construct($cl=false){......

colin_86
今天
1
0
数据结构与算法4

在此程序中,HighArray类中的find()方法用数据项的值作为参数传递,它的返回值决定是否找到此数据项。 insert()方法向数组下一个空位置放置一个新的数据项。一个名为nElems的字段跟踪记录着...

沉迷于编程的小菜菜
今天
1
1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部