Python开发之身份证验证库id_validator验证身份证号合法性及根据身份证号返回住址年龄等信息

上个星期,大佬分享了一个验证身份证号合法性的库:id_validator,没空去试着用一下看看,今天有点时间,来试着用下这个库。

1、首先,要安装这个库,windows+R键运行cmd,打开命令行窗口,输入下面的命令:

pip install id_validator

2、安装成功后,开始来使用这个库

(1)、首先,输入命令 python:

(2)、接着,引用这个库底下的一个模块,输入命令 from id_validator import validator

(3)、依次输入下面的命令,来看下校验结果,返回False,校验身份证合法性失败,返回True,校验身份证合法性成功:

validator.is_valid('440308199901111512')  #大陆18位身份证

validator.is_valid('610104620927690')  #大陆15位身份证

validator.is_valid('810000199408230021') #港澳18位身份证

validator.is_valid('830000199201300022') #台湾18位身份证

(4)、接着,通过这个库底下的某个方法可以获取身份证相关的信息,输入命令:print(validator.get_info('330221199306084914'))

3、以上就是对验证身份证号合法性的库id_validator的简单介绍。

下面讲解使用身份证验证库id_validator返回住址等信息

440308199901101512 和 610104620927690 示例大陆居民身份证均为随机生成的假数据,如撞车,请联系删除。 810000199408230021 和 830000199201300022 示例港澳台居民居住证为北京市公安局公布的居住证样式号码。

验证身份证号合法性

验证身份证号是否合法,合法返回 True,不合法返回 False:

from id_validator import validator
validator.is_valid('440308199901101512') # 大陆居民身份证 18 位
validator.is_valid('610104620927690')  # 大陆居民身份证 15 位
validator.is_valid('810000199408230021') # 港澳居民居住证 18 位
validator.is_valid('830000199201300022') # 台湾居民居住证 18 位

获取身份证号信息(解析身份证号)

当身份证号合法时,返回分析信息(地区、出生日期、星座、生肖、性别、校验位),不合法返回 False:

from id_validator import validator
validator.get_info('440308199901101512') # 18 位
validator.get_info('610104620927690')  # 15 位

返回信息格式如下:

{

'address_code'   : '440308',                   # 地址码

'abandoned'      : 0,                          # 地址码是否废弃,1 为废弃的,0 为正在使用的

'address'        : '广东省深圳市盐田区',          # 地址

'address_tree'   : ['广东省', '深圳市', '盐田区'] # 省市区三级列表

'birthday_code'  : '1999-01-10',               # 出生日期

'constellation'  : '摩羯座',                    # 星座

'chinese_zodiac' : '卯兔',                      # 生肖

'sex'            : 1,                          # 性别,1 为男性,0 为女性

'length'         : 18,                         # 号码长度

'check_bit'      : '2'                         # 校验码

}

本文主要讲解了身份证验证库id_validator验证身份证号合法性及根据身份证号返回住址等信息,更多关于Python开发技巧请查看下面的相关链接

(0)

相关推荐

  • Python随机生成身份证号码及校验功能

    GitHub : https://github.com/jayknoxqu/id-number-util 身份组成方式 中华人民共和国国家标准GB 11643-1999<公民身份号码>中规定:公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成. 18位数字组合的方式是: 1 1 0 1 0 2 Y Y Y Y M M D D 8 8 8 X 区域码(6位) 出生日期码(8位) 顺序码(2位) 性别码(1位) 校验码(1位) 区域码(6位) 出生日期码(8位) 顺序码(2位) 性别码(

  • 使用Python完成15位18位身份证的互转功能

    最近工作中刚好要清洗一批客户数据,涉及到身份证号码15位和18位的转换,特意研究了下,在这里分享下. 身份证号码的构成 既然谈到了身份证转换,那就需要先了解下证件号码的构成. 公民身份号码是特征组合码,由 十七位数字本体码 和 一位数字校验码 组成: 排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码. 六位数字地址码:表示编码对象常住户口所在县(市.旗.区)的行政区划代码,按GB/T 2260 的规定执行. 八位数字出生日期码:表示编码对象出生的年.月.

  • Python实现随机生成有效手机号码及身份证功能示例

    本文实例讲述了Python实现随机生成有效手机号码及身份证功能.分享给大家供大家参考,具体如下: 中国那么大,人那么多,几乎人手一部手机.手机号码已经作为各大互联网站的注册账户.同样,身份证更是如此.以下是生成有效手机号码和身份证号. 身份证需要下载districtcode.txt文件. 完整代码如下: import os import random import datetime BASE_DIR = os.path.dirname(os.path.dirname(__file__)) DC_

  • 一个计算身份证号码校验位的Python小程序

    S = Sum(Ai * Wi), i=0,.......16 (现在的身份证号码都是18位长,其中最后一位是校验位,15位的身份证号码好像不用了) Ai对应身份证号码,Wi则为用于加权计算的值,它一串固定的数值,应该是根据某种规则得出的吧,用于取得最好的随机性,Wi的取之如下: 7   9 10 5 8   4   2   1 6   3   7   9 10  5   8   4   2 经过加权计算之后,得到一个S,用这个S去模11,取余值,然后查表得到校验位,这个索引表如下: 0 ---

  • 使用python代码进行身份证号校验的实现示例

    先说,还有很多可以优化的地方. 1.比如加入15位身份证号的校验,嗯哼,15位的好像没有校验,那就只能提取个出生年月日啥的了. 2.比如判断加入地址数据库,增加输出信息 3.增加时间判断,出生日期大于当前时间的判为非法 代码是老师放了一个提取出生年月日的题目扩展过来的,目前来看代码运行正常,有没有bug就不造了. 身份证号校验规则 话说身份证号校验,最重要的肯定是校验.那么如何校验?如何又有15.18位身份证号之分? 1.1999年07月01日以前使用15位身份证号,也就是第一代身份证 2.二代

  • python实现身份证实名认证的方法实例

    前言 本文主要给大家介绍了关于python实现身份证实名认证的方法,文中通过示例代码介绍的非常详细,下面话不多说了,来一起看看详细的介绍吧 方法如下 一.首先我们选用了阿里云的身份证实名认证接口: https://market.aliyun.com/products/57000002/cmapi022049.html?spm=5176.2020520132.101.2.3fe77218O6ZDdd#sku=yuncode1604900000 二.编译并运行源代码 import requests

  • Python实现身份证号码解析

    中国的居民身份证有18位.其中前17位是信息码,最后1位是校验码.每位信息码可以是0-9的数字,而校验码可以是0-9或X,其中X表示10. 身份证校验码算法: 设18位身份证号序列从左到右为: 引用 a[0], a[1], a[2], a[3], ..., a[16], a[17] 其中a[i]表示第i位数字,i=0,1,2,...,17,如果最后一位(校验位)是X,则a[17]=10 每一位被赋予一个"权值",其中,第i位的权值w[i]的计算方法是: 引用 w[i] = 2**(17

  • 基于Python的身份证号码自动生成程序

    需求细化: 1.身份证必须能够通过身份证校验程序. 2.通过查询,发现身份证号码是有国家标准的,标准号为 GB 11643-1999 可以从百度下载到这个文档 下载:GB11643-1999sfz(jb51.net).rar 现行身份证号为18位,分别为6位地址码,8位生日,3位顺序码,一位校验码.具体例子可见下图. 前六位也是国家标准,GB2260-2007.吐槽一下,国标竟然没有一个网站供全面检索和免费下载...还好国家统计局有这些公开数据.可以从统计数据->统计标准->行政区划代码页面内

  • python验证身份证信息实例代码

    identity-card 验证身份证号码的正确性,不能仅仅通过正则表达式来验证,我们都知道我国的身份证一共是18位,由十七位数字本体码和一位校验码组成. 其排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位校验码. 地址码 (身份证号码前六位);表示编码对象常住户口所在县(市.旗.区)的行政区域划分代码,按GB/T2260的规定执行.1-2位省.自治区.直辖市代码: 3-4位地级市.盟.自治州代码: 5-6位县.县级市.区代码. 出生日期码 (身份证号码第七位到第

  • Python开发之身份证验证库id_validator验证身份证号合法性及根据身份证号返回住址年龄等信息

    上个星期,大佬分享了一个验证身份证号合法性的库:id_validator,没空去试着用一下看看,今天有点时间,来试着用下这个库. 1.首先,要安装这个库,windows+R键运行cmd,打开命令行窗口,输入下面的命令: pip install id_validator 2.安装成功后,开始来使用这个库 (1).首先,输入命令 python: (2).接着,引用这个库底下的一个模块,输入命令 from id_validator import validator (3).依次输入下面的命令,来看下校

  • JSONLINT:python的json数据验证库实例解析

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于人阅读和编写. JSON 函数 使用 JSON 函数需要导入 json 库:import json. 函数 描述 json.dumps 将 Python 对象编码成 JSON 字符串 json.loads 将已编码的 JSON 字符串解码为 Python 对象 随着前后端分离和 REST APIs 的火热,开发者不断寻找着一种灵活的.优雅的方式验证 json 数据.有直接手动获取数据验证的,也有使用

  • python库JsonSchema验证JSON数据结构使用详解

    目录 简单实例 type关键字 object关键字 属性 properties 必需属性 大小 数组属性 items List validation Tuple validation 长度 唯一性 通用关键字 元数据 枚举值 组合模式 anyOf oneOf allOf $schema关键字 正则表达式 构建复杂的模式 重用 JSON Schema是一个用于验证JSON数据结构的强大工具, 我查看并学习了JSON Schema的官方文档, 做了详细的记录, 分享一下. 我们可以使用JSON Sc

  • 基于jQuery的前端数据通用验证库

    于是在之前的开发之中慢慢开始总结,也写了一些零散的方法想要比较简单的,写更少的代码来完成更多的验证.之前采用的思路是传递参数,将要验证的控件的ID传进去,若是要验证数据格式再传入相应的正则表达式进去.项目结束之后,再对整个项目做总结的时候发现,这种写法也并没有节省多少代码量,而且很多地方因为同学反应说我写的那个库并不是很好用,虽然有说明,但他们也还是不能很好的理解,不能很快就上手,而且应该还是有不少BUG,所以很多地方他们还是宁愿用那种对每个控件去一一验证的方式,一个JS文件中光验证的部分就得两

  • Python中使用django form表单验证的方法

    一. django form表单验证引入 有时时候我们需要使用get,post,put等方式在前台HTML页面提交一些数据到后台处理例 ; <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Form</title> </head> <body> <div> <for

  • Python实现随机生成手机号及正则验证手机号的方法

    本文实例讲述了Python实现随机生成手机号及正则验证手机号的方法.分享给大家供大家参考,具体如下: 依据 根据2017年10月份最新的手机号正则进行编码, 正则如下: (13\d|14[579]|15[^4\D]|17[^49\D]|18\d)\d{8} 代码 # -*- coding: utf-8 -*- import random def create_phone(): # 第二位数字 second = [3, 4, 5, 7, 8][random.randint(0, 4)] # 第三位

  • 推荐一个基于Node.js的表单验证库

    API 在执行过程中的一个基本任务是数据验证. 在本文中,我想向你展示如何为你的数据添加防弹验证,同时返回风格良好的格式. 在 Node.js 中进行自定义数据验证既不容易也不快. 为了覆盖所有类型的数据,需要写许多函数. 虽然我已经尝试了一些 Node.js 的表单库 -- Express 和 Koa --他们从未满足我的项目需求. 这些扩展库要么不兼容复杂的数据结构,要么在异步验证出现问题. 使用 Datalize 在 Node.js 中进行表单验证 这就是为什么我最终决定编写自己的小巧而强

  • Python 实现自动登录+点击+滑动验证功能

    需要用到的库有selenium,还需要安装Chrome浏览器驱动,具体如何安装我就不详述了 在这里我模拟了csdn的登录过程 ** 1**.首先打开网页,用户名+密码登录,然后定位用户名输入框,和密码输入框,输入后 点击登陆 弹出验证滑动条 def __init__(self): self.url = 'https://passport.csdn.net/login' self.browser = webdriver.Chrome() #获取登录按钮对象 选择 账号密码登录 def get_pa

  • golang常用库之字段参数验证库-validator使用详解

    golang常用库:gorilla/mux-http路由库使用 golang常用库:配置文件解析库-viper使用 golang常用库:操作数据库的orm框架-gorm基本使用 golang常用库:字段参数验证库-validator使用 一.背景 在平常开发中,特别是在web应用开发中,为了验证输入字段的合法性,都会做一些验证操作.比如对用户提交的表单字段进行验证,或者对请求的API接口字段进行验证,验证字段的合法性,保证输入字段值的安全,防止用户的恶意请求. 一般的做法是用正则表达式,一个字段

  • Python开发的HTTP库requests详解

    Requests 是使用 Apache2 Licensed 许可证的 基于Python开发的HTTP 库,其在Python内置模块的基础上进行了高度的封装,从而使得Pythoner进行网络请求时,变得美好了许多,使用Requests可以轻而易举的完成浏览器可有的任何操作. 1. GET请求 # 1.无参数实例 import requests ret = requests.get('https://github.com/timeline.json') print(ret.url) print(re

随机推荐