Oracle按身份证号得到省市、性别、年龄的示例代码

yizhihongxing

下面就为你介绍如何使用身份证号获取省市、性别、年龄的示例代码:

实现思路

  1. 通过正则表达式获取身份证号的前六位,即省市代码;
  2. 将省市代码与省市名称的映射关系保存在字典中,根据省市代码从字典中获取省市名称;
  3. 根据身份证号的第17位确定性别,奇数为男性,偶数为女性;
  4. 根据身份证号的前六位和出生日期计算年龄。

实现代码

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技术站

(0)
上一篇 2023年5月22日
下一篇 2023年5月22日

相关文章

  • Redis批量删除KEY的方法

    下面就为您详细讲解Redis批量删除KEY的方法的完整攻略。 1. Redis的批量删除KEY方法 Redis是一款内存数据库,因此它的性能非常高,但是这也意味着它的内存空间非常珍贵。如果不注意,Redis会因为占用太多内存而崩溃。因此,我们需要定期删除不再使用的数据,以释放内存空间。这就需要批量删除Redis中的KEY。 1.1 DEL命令 Redis提供…

    database 2023年5月22日
    00
  • Tableau Desktop10 64位中文破解安装图文教程(附破解补丁下载)

    “Tableau Desktop10 64位中文破解安装图文教程(附破解补丁下载) ”攻略 1. 下载软件和破解补丁 首先需要下载Tableau Desktop10 64位中文软件和破解补丁。这里建议去官网或者知名软件下载站下载,以免下载到病毒或者不安全的文件。 示例链接:Tableau Desktop10 64位中文官方下载页面 2. 安装软件 双击下载的…

    database 2023年5月19日
    00
  • 深入C#中使用SqlDbType.Xml类型参数的使用详解

    深入C#中使用SqlDbType.Xml类型参数的使用详解 什么是SqlDbType.Xml类型参数 SqlDbType.Xml类型参数是一个用于传递XML文档信息到SQL Server中的参数类型。 如何使用SqlDbType.Xml类型参数 使用SqlDbType.Xml类型参数,需要以下步骤: 定义参数 定义SqlParameter类型的参数对象,并将…

    database 2023年5月21日
    00
  • RPM包方式安装Oracle21c的方法详解

    下面我将详细讲解“RPM包方式安装Oracle21c的方法详解”。 什么是RPM包? RPM是一种软件包管理器,它用于在Linux中安装、升级和卸载软件包。RPM软件包是打包好的Linux软件包装程序,它们包含一组预编译的二进制文件、配置文件和文档,可用于在Linux系统中快速部署软件。 安装步骤 下面是使用RPM包在Linux系统上安装Oracle 21c…

    database 2023年5月22日
    00
  • SQL Server查询前N条记录的常用方法小结

    SQL Server查询前N条记录的常用方法小结: 1. 使用TOP关键字 使用TOP关键字是SQL Server查询前N条记录的最常见方法。该方法简单易用,使用起来非常方便,只需要在SELECT语句中加上TOP关键字即可。 示例1: 查询前3条记录 SELECT TOP 3 * FROM table_name; 示例2: 查询前5条记录并按照age字段降序…

    database 2023年5月21日
    00
  • SQL 计算非Null值的个数

    计算 SQL 表中非 Null 值的个数可以使用 COUNT 函数。COUNT 函数是 SQL 中最常用的聚合函数之一,它可以用来统计表中某列的数据个数。在计算非 Null 值的个数时,需要使用 COUNT 函数结合 IS NOT NULL 运算符来实现。下面是两个实例代码: 统计某一列中非 Null 值的个数 SELECT COUNT(column_nam…

    database 2023年3月27日
    00
  • mysql 数据插入优化方法之concurrent_insert

    MySQL 数据插入优化方法之 concurrent_insert concurrent_insert 是 MySQL 数据插入优化的一种方法。它可以通过将新的索引插入页分离(FSP)空闲列表,从而在插入新记录时提高并发性能。 concurrent_insert 参数设置 concurrent_insert 有三个可选参数: OFF: 禁用此功能(默认值);…

    database 2023年5月19日
    00
  • sqlsever2019文件创建与变量示例

    下面是关于“SQL Server 2019文件创建与变量示例”的详细攻略: SQL Server 2019文件创建与变量示例 文件创建 在SQL Server中,我们可以通过以下语句来创建文件: USE [master] GO CREATE DATABASE [TestDB] CONTAINMENT = NONE ON PRIMARY ( NAME = N’…

    database 2023年5月21日
    00
合作推广
合作推广
分享本页
返回顶部