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

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

实现思路

  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日

相关文章

  • Mysql8.0.22解压版安装教程(小白专用)

    下面我为您详细讲解“Mysql8.0.22解压版安装教程(小白专用)”的完整攻略。 步骤一:下载Mysql8.0.22解压版安装文件 在官网上下载Mysql8.0.22的解压版安装文件,并解压到指定的文件夹中。 步骤二:配置Mysql8.0.22的环境变量 将Mysql8.0.22的bin路径添加到系统环境变量中,方便在任何地方都可以直接使用mysql命令。…

    database 2023年5月21日
    00
  • Entity Framework使用Code First模式管理数据库

    让我为你详细讲解“Entity Framework使用Code First模式管理数据库”的完整攻略。 什么是 Entity Framework Code First Entity Framework Code First 是 Entity Framework 中的一种模式,它可以让你通过代码定义实体的数据结构,然后 EF 将会根据这些定义帮助你自动创建数据…

    database 2023年5月21日
    00
  • 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器

    针对“在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器”的问题,可以采取以下步骤进行排除: 1. 检查网络连接 首先,需要确保计算机与 SQL Server 数据库服务器之间建立了正确的网络连接。可以使用 ping 命令测试一下是否能够正确地连接到服务器,如下所示: ping servername 其中,ser…

    database 2023年5月19日
    00
  • 全面盘点MySQL中的那些重要日志文件

    当我们在使用MySQL数据库时,想要更好地了解数据库中发生的事情和对数据进行故障排查,就需要了解MySQL中的重要日志文件。这里就给大家介绍一下MySQL中的重要日志文件。 MySQL中的重要日志文件 错误日志(error log) MySQL错误日志记录了MySQL服务器在启动、运行和关闭的过程中发生的所有错误、警告和提示信息。MySQL错误日志默认情况下…

    database 2023年5月21日
    00
  • MYSQL企业常用架构与调优经验分享

    一、选择Percona Server、MariaDB还是MYSQL  mysql应用源码:http://www.jinhusns.com/Products/Download/?type=xcj 1、Mysql三种存储引擎   MySQL提供了两种存储引擎:MyISAM和 InnoDB,MySQL4和5使用默认的MyISAM存储引擎。从MYSQL5.5开始,M…

    MySQL 2023年4月13日
    00
  • Oracle存储过程与函数的详细使用教程

    Oracle存储过程与函数的详细使用教程 什么是存储过程与函数? 在Oracle数据库中,存储过程和函数都是一组预定义的SQL语句集合,并且可以在同一数据库中多次使用。它们可以像其他SQL语句一样执行,同时也可以作为脚本另外执行。它们都可以帮助提高数据库的性能,尤其是在处理大量数据时,因为它们只需要编译一次,并在以后的使用中多次调用。 存储过程和函数的区别在…

    database 2023年5月21日
    00
  • 5分钟教你docker安装启动redis全教程(全新方式)

    5分钟教你docker安装启动redis全教程(全新方式) 现如今,Docker已经被越来越多的人所熟知和使用。其优点在于不需要干涉操作系统,且容易进行迁移和升级。本文将介绍在Docker中安装和启动redis的几个关键步骤。 1. Elasticsearch Docker 镜像的获取 Elasticsearch Docker镜像仓库地址 你可以通过下面的d…

    database 2023年5月22日
    00
  • nodejs集成sqlite使用示例

    下面是“nodejs集成sqlite使用示例”的完整攻略: 步骤1 安装 sqlite3 包 在终端运行以下命令: npm install sqlite3 步骤2 创建和连接数据库 在 node.js 中,需先连接数据库才能进行后续的查询、更新等操作。在此之前先创建一个名为“mydatabase”的 sqlite 数据库,用 SQLite3 包连接该数据库,…

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