一个用于验证和从国家身份证号码中提取信息的库
项目描述
一个用于验证国家身份证号码并从中提取任何嵌入数据的库。
目前仅实现了南非和津巴布韦,但未来还将添加更多国家
安装
pip install id-validation
用法
from id_validation import ValidatorFactory
validator = ValidatorFactory.get_validator("ZW")
# Use the validate method to test whether a number is valid or not according to country-specific rules
assert validator.validate("50-025544-Q-12")
# The extract data method returns any data that might be encoded into the id number. This is country specific.
data = validator.extract_data("50-025544-Q-12")
assert data["registration_region"] == "Mutasa"
assert data["district"] == "Chivi"
assert data["sequence_number"] == "025544"
国家
以下代码可用
BW - Botswana
NG - Nigeria
ZA - South Africa
ZA_OLD - South African (Apartheid-era). See the note below for more information
ZW - Zimbabwe
博茨瓦纳(BW)
注意 - 验证逻辑是根据在线可获得的经验性信息实现的,而不是根据官方文档。
>>> import id_validation
>>> from id_validation import ValidatorFactory
>>> validator = ValidatorFactory.get_validator("BW")
>>> validator.validate("379219515")
True
>>> validator.extract_data("379219515")
{'gender': 'Male'}
尼日利亚
尼日利亚身份证号码由11个随机选择的数字组成。请在此处找到相关规定 这里。
>>> import id_validation
>>> from id_validation import ValidatorFactory
>>> validator = ValidatorFactory.get_validator("NG")
>>> validator.validate("35765421356")
True
南非(ZA)
南非身份证包含以下信息
- 出生日期
- 性别
- 公民身份(公民或永久居民)
>>> import id_validation
>>> from id_validation import ValidatorFactory
>>> validator = ValidatorFactory.get_validator("ZA")
>>> validator.validate("7106245929185")
True
>>> validator.extract_data("7106245929185")
{'dob': datetime.datetime(1971, 6, 24, 0, 0), 'gender': <GENDER.MALE: 1>, 'checksum': 5, 'citizenship': <CITIZENSHIP_TYPE.PERMANENT_RESIDENT: 1>}
南非 - 阿帕ルト时期(ZA_OLD)
阿帕ルト时期南非身份证包含以下信息
- 出生日期
- 性别
- 种族
>>> import id_validation
>>> from id_validation import ValidatorFactory
>>> validator = ValidatorFactory.get_validator("ZA_OLD")
>>> validator.validate("7106245929185")
True
>>> validator.extract_data("7106245929185")
{'dob': datetime.datetime(1971, 6, 24, 0, 0), 'gender': <GENDER.MALE: 1>, 'checksum': 5, 'race': <RACE.CAPE_COLOURED: 1>}
注意
这些身份证号码在阿帕ルト时期使用过。它们编码了ID持有者的种族。1986年身份识别法取消了此标识符,并将所有身份证号码更改为更现代的版本,该版本仅编码公民身份。此验证器包含为完整性。我从未在任何我工作过的数据集中看到过旧身份证号码,因此除非您确定您的身份证是1986年之前的,否则请避免使用它。更多信息可以在 这里找到
津巴布韦(ZW)
津巴布韦身份证包含以下信息
- 注册区域
- 父亲的区域
>>> import id_validation
>>> from id_validation import ValidatorFactory
>>> validator = ValidatorFactory.get_validator("ZW")
>>> validator.validate("50-025544-Q-12")
True
>>> validator.extract_data("50-025544-Q-12")
{'registration_region': 'Mutasa', 'district': 'Chivi', 'sequence_number': '025544'}
项目详情
关闭
id-validation-0.5.0.tar.gz 的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | e4432dcb07551a14e5909025341a4f57e022ef30798cabf2ede435839d3aba79 |
|
MD5 | 6dfca5465259b358bd41971da5600857 |
|
BLAKE2b-256 | 8caabb5d50b0fa0cd7ed092687c404d2faaf866c269f24420e31ba81db915581 |
关闭
id_validation-0.5.0-py3-none-any.whl 的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | a35fa86ceed742a26d65f76d805d773a38eb30fb6b982debd8d23d69a78338c4 |
|
MD5 | a09c6af8df9451bd2ec36cdab7b61d68 |
|
BLAKE2b-256 | 991f9f3ee1f32928501545891bcf682f5b76921181c8029950407b0a70c9edd7 |