获取全国最新行政区划代码

本文获取的是2023年4月发布的2022年中华人民共和国县以上行政区划代码,随着时间的推移部分区县的行政区划代码可能会存在更新,需要的话上国家民政部官网搜索“行政区划”相关信息,即可获取全国最新的行政区划代码网址。

# 导入库
from bs4 import BeautifulSoup
import requests

# 2022年中华人民共和国县以上行政区划代码
url = 'https://www.mca.gov.cn/mzsj/xzqh/2022/202201xzqh.html'

# 解析网页
r = requests.get(url).content.decode('utf-8')
soup = BeautifulSoup(r, 'html.parser')

# 获取网页中的表格
table = soup.find('table')

# 初始化数据字典
data_dict = {}

# 逐行遍历表格
for row in table.find_all('tr'):
    # 找到每一行中的所有单元格
    cells = row.find_all('td')
    # 确保至少有两个单元格
    if len(cells) >= 3:
        # 提取第二列[行政区划代码]和第三列[单位名称]元素
        second_column = cells[1].text
        third_column = cells[2].text
        # 保存为字典元素
        data_dict[second_column] = third_column.replace('\xa0', '').strip()

# 使用字典推导式删除键为空的元素
data_dict = {k: v for k, v in data_dict.items() if v}
del data_dict['行政区划代码']

# 输出删除键为空元素后的字典
print(data_dict)

上述代码使用的网址可以根据需要及时更新,但更新后的页面可能和当前网址页面结构不一定相同,因此本文旨在说明获取信息的逻辑。

本文在获取网页信息时主要采用的是requests库,解析网页结构使用的是BeautifulSoup库。

在解析网页时,BeautifulSoup获取的输入参数类型通常是string或字节流数据格式,获取到网页信息后,分析网页结构,发现所需要的信息在网页table(表格标签)的tr(行标签)的第二和第三个td(单元格标签),因此直接获取表格第二三列的文本内容即可。

需要注意的是,网页格式可能会生成一些所需信息以外的不需要的字符,因此在获取到数据后,需要检查其中是否包含一些多余字符。

如 '\xa0' 是Unicode编码中的非打印字符,表示不间断空格(non-breaking space)。在解析网页文本时,可以使用Python的字符串处理方法来删除 '\xa0',对于字符串前后的空白字符,可使用strip()函数清除。

对于一些额外的键值对,正常删除即可。通常一次获取省市代码后,短期内不会发生变化,因此可以将获取的内容保存为json文件即可,方便后续调用。

import json
# 写入json文件
with open(r'temp/city_and_code.json', 'w+', encoding='utf-8') as f:
    f.write(json.dumps(data_dict, ensure_ascii=False, indent=2))  # 缩进2字符

# 从json文件中加载字典
with open(r'temp/city_and_code.json', "r+", encoding="utf-8") as f:
    dict_ = json.load(f)

  • 12
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值