下面就为你介绍如何使用身份证号获取省市、性别、年龄的示例代码:
实现思路
- 通过正则表达式获取身份证号的前六位,即省市代码;
- 将省市代码与省市名称的映射关系保存在字典中,根据省市代码从字典中获取省市名称;
- 根据身份证号的第17位确定性别,奇数为男性,偶数为女性;
- 根据身份证号的前六位和出生日期计算年龄。
实现代码
def get_local_info(id_number):
'''根据身份证号获取省市、性别、年龄信息'''
# 获取省市编码
provinces = {
'11': '北京市', '12': '天津市', '13': '河北省', '14': '山西省',
'15': '内蒙古自治区', '21': '辽宁省', '22': '吉林省', '23': '黑龙江省',
'31': '上海市', '32': '江苏省', '33': '浙江省', '34': '安徽省',
'35': '福建省', '36': '江西省', '37': '山东省', '41': '河南省',
'42': '湖北省', '43': '湖南省', '44': '广东省', '45': '广西壮族自治区',
'46': '海南省', '50': '重庆市', '51': '四川省', '52': '贵州省',
'53': '云南省', '54': '西藏自治区', '61': '陕西省', '62': '甘肃省',
'63': '青海省', '64': '宁夏回族自治区', '65': '新疆维吾尔自治区', '71': '台湾省',
'81': '香港特别行政区', '82': '澳门特别行政区'
}
province_code = id_number[:2]
province = provinces.get(province_code, '')
# 获取性别
gender = ''
if int(id_number[16]) % 2 == 0:
gender = '女'
else:
gender = '男'
# 获取出生日期
birthday = datetime.date(int(id_number[6:10]), int(id_number[10:12]), int(id_number[12:14]))
# 计算年龄
today = datetime.date.today()
age = today.year - birthday.year - ((today.month, today.day) < (birthday.month, birthday.day))
return province, gender, age
示例说明
示例一
如果身份证号码为:440301198611142583,则根据上述代码,会返回如下结果:
('广东省', '男', 34)
这个人是广东省人,是男性,当前年龄为34岁。
示例二
如果身份证号码为:510184197307235792,则根据上述代码,会返回如下结果:
('四川省', '女', 48)
这个人是四川省人,是女性,当前年龄为48岁。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Oracle按身份证号得到省市、性别、年龄的示例代码 - Python技术站