中华人民共和国县以上行政区划代码的golang包
go get gitee.com/ppmoon/gbt2260
或者你使用vgo
vgo get gitee.com/ppmoon/gbt2260
输入一个行政区域代码比如 130104 返回一个省市县的数组[河北省 石家庄市 桥西区] 如果是直辖市比如北京 110000 返回就是[北京市]
//引入包 import "gitee.com/ppmoon/gbt2260" //打印查看 region := gbt2260.NewGBT2260() localCode := region.SearchGBT2260("130104") fmt.Println(localCode) [河北省 石家庄市 桥西区]
目前数据使用2018年4月的最新数据
中华人民共和国民政部
民政部啥时候发布新数据还是挺没准的,看之前的数据是一年一发,今年貌似1月2月发了,但是后面就没发,现在也找不到什么规律。 不然考虑每次载入程序的时候都去民政部官方网站更新下数据。
gbt2260的数据存储到了一个trie 字典树当中。这样的数据结构查询的时候更快。(虽然3000多条数据完全没感觉~~~)
数据并不是从GBT2260-201802.csv生成的,我使用gengbt2260.go根据GBT2260-201802.csv生成了一个gbt2260Table.go因为golang程序编译了以后不会去包的根目录去寻找csv文件而是从编译好的二进制文件的当前目录寻找的。所以将直接数据编译成源码写到内存里。
希望这个扩展包可以帮助大家解决行政区域的业务需求。我自己是用来解析身份证信息来使用的。如果觉得对你有帮助欢迎star谢谢。
大家使用的过程当中如果发现任何问题或者想吐槽我的代码可以提交issue。 数据需要更新的时候也麻烦大家提交issue,当然未来也希望这个包可以自动从民政部的网站上更新中华人民共和国县以上行政区划代码的数据。