Python实战:获取身份证前6位归属地

在如今的社会,身份证已经成为了我们日常生活中不可或缺的一部分。它不仅是我们的身份证明,还包含了我们的个人信息,例如出生日期、性别等。而身份证号码的前六位,即行政区划代码,代表了持有人的户籍所在地区。你知道吗,通过 Python 编程,我们可以方便地获取身份证号码前六位的归属地信息。在这篇文章中,我们将一起探讨如何利用 Python 来实现这一功能。

找来源

浏览器搜索“在线身份证校验工具”,随便进入一个在线校验网站,本文以https://uutool.cn/id-card/这个网站为例。

Python实战:获取身份证前6位归属地_第1张图片

网页显示“本工具数据均在本地浏览器处理,不会上传到网络服务器中,请放心使用!”

说明网页前端存在一个编码表,那我们只需要找到这个编码表就可以了。

Python实战:获取身份证前6位归属地_第2张图片

打开开发者工具,刷新页面,找到 idCardData.json 这个请求,在 Response 内可以看到返回的就是身份证前 6 位对应的归属地编码。

Python实战:获取身份证前6位归属地_第3张图片

在 Headers 内找到请求 url 是https://cdn.uukit.com/data/idCardData.json

Python实战:获取身份证前6位归属地_第4张图片

分析代码

接下来就可以编写 python 代码,步骤比较简单:发起请求—>获取到 json 数据—>解析 json 数据—>保存数据。

代码编写

使用csv库实现

使用 csv 库实现,代码如下:

import requests
import csv

url = "https://cdn.uukit.com/data/idCardData.json"
data = requests.get(url).json()

# 创建一个 CSV 文件
with open('身份证归属地查询表.csv', 'w', newline='', encoding='utf-8') as csvfile:
    # 初始化 CSV 写入器
    csv_writer = csv.writer(csvfile)

    # 写入 CSV 文件的表头
    csv_writer.writerow(['编码', '省级行政区', '地级行政区', '县级行政区', '备注'])

    # 遍历 JSON 数据
    for key, value in data.items():
        # 将 JSON 数据写入 CSV 文件
        csv_writer.writerow([key, value['p'], value['a'], value['d'], value['i']])

print("JSON 数据已保存到 身份证归属地查询表.csv 文件中")

执行程序后,在文件夹内可以看到刚才生成的 csv 文件。打开文件,可以看到共有 3829 条归属地编码信息,包含 6 位编码对应的省级、地级、县级行政区。

Python实战:获取身份证前6位归属地_第5张图片

使用pandas库实现

使用 pandas 库实现,代码如下:

import requests
import pandas as pd

content_list = []
url = "https://cdn.uukit.com/data/idCardData.json"
data = requests.get(url).json()

# 遍历 JSON 数据
for key, value in data.items():
    content_list.append(
        {'编码': key, '省级行政区': value['p'], '地级行政区': value['a'], '县级行政区': value['d'], '备注': value['i']})

content = pd.DataFrame(content_list)
content.to_csv("身份证归属地查询表2.csv", mode='a', encoding='utf-8', index=False)
print("保存成功")

保存到数据库

import requests
import pandas as pd
import sqlite3

content_list = []
url = "https://cdn.uukit.com/data/idCardData.json"
data = requests.get(url).json()

# 遍历 JSON 数据
for key, value in data.items():
    content_list.append(
        {'编码': key, '省级行政区': value['p'], '地级行政区': value['a'], '县级行政区': value['d'], '备注': value['i']})

content = pd.DataFrame(content_list)

# 创建一个SQLite数据库连接
conn = sqlite3.connect('id-card.db')

# 将DataFrame写入SQLite数据库
content.to_sql('id-card_table', conn, if_exists='replace', index=False)

# 提交更改并关闭连接
conn.commit()
conn.close()

使用 SQLiteStudio 图形化工具,连接刚才生成的id-card.db数据库文件,打开id-card_table表,就可以直观的看到刚才写入到数据库中的数据,3829 条归属地数据已经保存到 SQLite 数据库。

Python实战:获取身份证前6位归属地_第6张图片

以上就是“Python实战:获取身份证前6位归属地”的全部内容,希望对你有所帮助。

关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

在这里插入图片描述

二、Python必备开发工具

img

三、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

五、Python练习题

检查学习结果。

img

六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

img

最后祝大家天天进步!!

上面这份完整版的Python全套学习资料已经上传至CSDN官方,朋友如果需要可以直接微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】。

你可能感兴趣的:(python,php,开发语言)