中华人民共和国行政区划(五级):省级、地级、县级、乡级和村级。
- 民政部、国家统计局:
- 本项目已更新至:
文件列表 | JSON | CSV |
---|---|---|
省级(省份、直辖市、自治区) | provinces.json | provinces.csv |
地级(城市) | cities.json | cities.csv |
县级(区县) | areas.json | areas.csv |
乡级(乡镇、街道) | streets.json | streets.csv |
村级(村委会、居委会) | villages.json | villages.csv |
文件列表 | 普通 | 带编码 |
---|---|---|
“省份、城市” 二级联动数据 | pc.json | pc-code.json |
“省份、城市、区县” 三级联动数据 | pca.json | pca-code.json |
“省份、城市、区县、乡镇” 四级联动数据 | pcas.json | pcas-code.json |
“省份、城市、区县、乡镇、村庄” 五级联动数据 | - | - |
提示:需要打包下载全部文件,请看 Releases。
$ npm install
$ npm run fetch
如果需要更新所有数据,只需删除现有数据重新抓取即可:
# 删除现有的数据
$ rm dist/*.csv && rm dist/[a-z]*.json && rm dist/data.sqlite && touch dist/data.sqlite
# 拉数据(这个步骤比较耗时)
$ npm run fetch
# 格式化 json csv 和联动数据等
$ npm run build
[1/1]正在抓取省级数据...
[1/31]正在抓取地级数据,当前省级:11 北京市
[2/31]正在抓取地级数据,当前省级:12 天津市
[3/31]正在抓取地级数据,当前省级:13 河北省
[4/31]正在抓取地级数据,当前省级:14 山西省
...
[29/31]正在抓取地级数据,当前省级:63 青海省
[30/31]正在抓取地级数据,当前省级:64 宁夏回族自治区
[31/31]正在抓取地级数据,当前省级:65 **维吾尔自治区
[1/344]正在抓取县级数据,当前地级:1101 市辖区
[2/344]正在抓取县级数据,当前地级:1201 市辖区
[3/344]正在抓取县级数据,当前地级:1301 石家庄市
[4/344]正在抓取县级数据,当前地级:1302 唐山市
...
[342/344]正在抓取县级数据,当前地级:6542 塔城地区
[343/344]正在抓取县级数据,当前地级:6543 阿勒泰地区
[344/344]正在抓取县级数据,当前地级:6590 自治区直辖县级行政区划
[1/2856]正在抓取乡级数据,当前县级:110101 东城区
[2/2856]正在抓取乡级数据,当前县级:110102 西城区
[3/2856]正在抓取乡级数据,当前县级:110105 朝阳区
[4/2856]正在抓取乡级数据,当前县级:110106 丰台区
...
[2854/2856]正在抓取乡级数据,当前县级:659003 图木舒克市
[2855/2856]正在抓取乡级数据,当前县级:659004 五家渠市
[2856/2856]正在抓取乡级数据,当前县级:659006 铁门关市
[1/42951]正在抓取村级数据,当前乡级:110101001 东华门街道办事处
[2/42951]正在抓取村级数据,当前乡级:110101002 景山街道办事处
[3/42951]正在抓取村级数据,当前乡级:110101003 交道口街道办事处
[4/42951]正在抓取村级数据,当前乡级:110101004 安定门街道办事处
...
[42949/42951]正在抓取村级数据,当前乡级:659004502 兵团一零三团
[42950/42951]正在抓取村级数据,当前乡级:659006100 博古其镇
[42951/42951]正在抓取村级数据,当前乡级:659006101 双丰镇
[100%] 数据抓取完成!
$ npm test
> eslint . && mocha -t 5000
中华人民共和国行政区划:
✓ “一级” 省级(省份、直辖市、自治区)数据
✓ “二级” 地级(城市)数据
✓ “三级” 县级(区县)数据
✓ “四级” 乡级(乡镇、街道)数据
✓ “五级” 村级(村委会、居委会)数据
联动数据
✓ “省份、城市” 二级联动数据
✓ “省份、城市、区县” 三级联动数据
✓ “省份、城市、区县、乡镇” 四级联动数据
✓ “某省、某市、某县、某镇” 不存在
9 passing (37ms)
目前本项目抓取的数据保存在 sqlite3,数据文件下载:data.sqlite。
可以自己将数据迁移到其他数据库管理系统中(MySQL, Oracle, MSSQL 等)。
省级数据预览
code | name |
---|---|
13 | 河北省 |
14 | 山西省 |
15 | 内蒙古自治区 |
45 | 广西壮族自治区 |
地级数据预览
code | name | provinceCode |
---|---|---|
1301 | 石家庄市 | 13 |
1401 | 太原市 | 14 |
1525 | 锡林郭勒盟 | 15 |
4503 | 桂林市 | 45 |
县级数据预览
code | name | cityCode | provinceCode |
---|---|---|---|
130111 | 栾城区 | 1301 | 13 |
140121 | 清徐县 | 1401 | 14 |
152527 | 太仆寺旗 | 1525 | 15 |
450305 | 七星区 | 4503 | 45 |
乡级数据预览
code | name | areaCode | cityCode | provinceCode |
---|---|---|---|---|
130111200 | 南高乡 | 130111 | 1301 | 13 |
140121102 | 东于镇 | 140121 | 1401 | 14 |
152527201 | 贡宝拉格苏木 | 152527 | 1525 | 15 |
450305004 | 漓东街道办事处 | 450305 | 4503 | 45 |
村级数据预览
code | name | streetCode | areaCode | cityCode | provinceCode |
---|---|---|---|---|---|
130111200201 | 南高村委会 | 130111200 | 130111 | 1301 | 13 |
140121102001 | 东于社区居委会 | 140121102 | 140121 | 1401 | 14 |
152527201206 | 敦达乌苏嘎查 | 152527201 | 152527 | 1525 | 15 |
450305004006 | 横塘社区 | 450305004 | 450305 | 4503 | 45 |
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request
This repo is released under the WTFPL – Do What the Fuck You Want to Public License.