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日

相关文章

  • 批量修改所有服务器的dbmail配置(推荐)

    批量修改所有服务器的dbmail配置是一项重要的操作,可以节省服务器管理员在单独修改每台服务器上配置的时间。以下是标准的markdown格式文本攻略。 批量修改所有服务器的dbmail配置(推荐) 简介 本文将介绍如何通过SSH连接批量修改所有服务器的dbmail配置。在这个过程中,将使用远程命令行和文本编辑工具来修改dbmail配置文件,确保所有服务器都能…

    database 2023年5月22日
    00
  • mysql导入sql文件报错 ERROR 2013 2006 2002

    当使用mysql命令导入sql文件时,可能会出现ERROR 2013、ERROR 2006、ERROR 2002等错误,下面是解决这些错误的完整攻略。 1. ERROR 2013 (HY000) at line xxx: Lost connection to MySQL server during query 原因分析 ERROR 2013 (HY000)报…

    database 2023年5月18日
    00
  • SQL Server 2012降级至2008R2的方法

    下面是SQL Server 2012降级至2008R2的方法的完整攻略,包含步骤和示例。 步骤 备份SQL Server 2012数据库 在降级之前需要备份SQL Server 2012数据库,以便在后续数据还原时使用。 卸载SQL Server 2012 打开控制面板,选择“程序”,找到SQL Server 2012,并卸载它。 下载并安装Microsof…

    database 2023年5月18日
    00
  • Elasticsearch 和 Solr 的区别

    下面我给你详细讲解Elasticsearch和Solr的区别: 1. 概述 Elasticsearch和Solr都是基于Lucene的分布式搜索引擎,它们具有高效、可扩展、分布式的特点。Elasticsearch主要适用于实时搜索、分析和数据可视化,Solr主要适用于企业级搜索。 2. 性能 Elasticsearch在大数据存储和实时搜索方面性能更优秀,S…

    database 2023年3月27日
    00
  • DBMS 实体关系图

    DBMS(数据库管理系统)是管理和组织数据的软件。在DBMS中,实体关系图(Entity-Relationship Diagram,简称ERD)是设计数据库的重要工具。下面将详细讲解ERD的完整攻略,包括什么是实体关系,如何绘制ERD以及一些实例说明。 实体关系 在ERD中,实体指的是存储数据的对象,例如学生、课程、教师等。每个实体在ERD中用一个矩形表示,…

    database 2023年3月27日
    00
  • 快速增加MYSQL数据库连接数负载能力的方法分享

    下面我来给大家分享一下“快速增加MYSQL数据库连接数负载能力的方法”的完整攻略。 1. 确认当前MYSQL数据库连接数 首先,我们需要确认当前MYSQL数据库的连接数。可以通过运行以下命令查询: show variables like ‘%max_connections%’; 该命令会返回最大连接数(max_connections)和当前连接数(Threa…

    database 2023年5月22日
    00
  • PHP连接MySQL的2种方法小结以及防止乱码

    接下来我会为您详细讲解“PHP连接MySQL的2种方法小结以及防止乱码”的完整攻略。 PHP连接MySQL的2种方法小结 方法1:使用MySQLi扩展连接MySQL 首先需要通过mysqli_connect()函数连接MySQL数据库,该函数的参数包含主机名、用户名、密码和数据库名等信息。 $con = mysqli_connect("localh…

    database 2023年5月22日
    00
  • Python操作MySQL数据库实例详解【安装、连接、增删改查等】

    Python操作MySQL数据库实例详解 本文将以Python编程语言为例,介绍如何通过Python连接MySQL数据库实例,并进行增删改查等操作。 安装相关软件 在开始操作之前,需要安装一些相关软件,包括: Python3.x或以上版本【下载地址链接】 PyMySQL库:Python连接MySQL数据库的库,可通过pip install pymysql命令…

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