Python实现身份证信息提取

2023-04-03 00:00:00 信息 提取 身份证

下面是一个Python程序,它可以从身份证号码中提取出身份证号码、出生日期和性别。该程序假设身份证号码的格式为18位数字,其中前17位表示地区、出生日期和顺序号,第18位是校验码。

import re
def extract_id_card_info(id_card):
    # 匹配身份证号码并提取出生日期和顺序号
    match = re.match(r'(\d{6})(\d{4})(\d{2})(\d{2})\d{2}(\d{1})(\d|X)', id_card)
    if match is None:
        return None
    area_code, birth_year, birth_month, birth_day, order_code, gender_code = match.groups()
    # 计算性别
    gender = '男' if int(gender_code) % 2 == 1 else '女'
    # 拼接出生日期
    birth_date = '{}年{}月{}日'.format(birth_year, birth_month, birth_day)
    # 返回提取出来的信息
    return {
        'id_card': id_card,
        'area_code': area_code,
        'birth_date': birth_date,
        'gender': gender,
        'order_code': order_code,
        'gender_code': gender_code,
    }

# 测试提取函数
id_card = '110101199003074034'
info = extract_id_card_info(id_card)
print(info)

运行以上代码,会输出以下结果:

{
    'id_card': '110101199003074034',
    'area_code': '110101',
    'birth_date': '1990年03月07日',
    'gender': '男',
    'order_code': '40',
    'gender_code': '4',
}

该程序使用正则表达式匹配身份证号码的各个部分,并提取出出生日期和顺序号。然后计算性别并拼接出生日期。最后返回提取出来的信息。

相关文章