本文可以学习到以下内容:

  1. 使用 pandas 中的 to_excel 生成 excel 数据
  2. 使用 pandas 中的 read_excel 读取 excel数据
  3. 使用 pandas 中的 map 函数加密手机号的身份证号
  4. 使用 hashlib 库对数据进行 md5、sha加密

获取数据

数据保存在 sqlite3 数据库中,用户表 users 中保存的数据有:用户id(user_id)、用户姓名(username)、用户年龄(age)、用户手机号(mobile)以及用户身份证(idcard)。

小凡通过下面代码获取数据库中的数据:

import os
import pandas as pd
import numpy as np
from sqlalchemy import create_engine # 数据库地址:数据库放在上一级目录下
db_path = os.path.join(os.path.dirname(os.getcwd()), "data.db")
engine_path = "sqlite:///" + db_path
# 创建数据库引擎
engine = create_engine(engine_path) sql = """
select
*
from
users
""" df = pd.read_sql(sql, engine) # 生成excel文件
df.to_excel("./md5加密数据.xlsx",index=False)
# 读取生成的Excel文件
md5_excel_df = pd.read_excel("./md5加密数据.xlsx")

数据预览:

加密函数

在对接不同的第三方公司,需要的加密方式也不同,小凡为了节省时间,将常用的加密方式封装为函数(encryption_str)。

函数需要传入以下参数:加密的字符串(string)、加密算法(encry_model)、加密类型(encry_style),该函数返回加密后的字符串。

加密函数如下:

def encryption_str(string, encry_model="md5_32", encry_style=True):
import hashlib
# 加密为 utf-8 编码
utf_8_str = str(string).encode("utf8")
# 函数字典
param_dict = {
"md5_32": hashlib.md5(utf_8_str),
"md5_16": hashlib.md5(utf_8_str),
"sha1": hashlib.sha1(utf_8_str),
"sha224": hashlib.sha224(utf_8_str),
"sha256": hashlib.sha256(utf_8_str),
"sha512": hashlib.sha512(utf_8_str)
}
encry_result = param_dict[encry_model].hexdigest()
if encry_model == 'md5_16':
encry_result = encry_result[8:-8]
# 返回结果
return encry_result if encry_style == "小写" else encry_result.upper()

数据加密

使用 pandas 中的map方法对手机号(mobile)和身份证号(idcard)列进行加密。

md5_excel_df["mobile_md5"] = md5_excel_df["mobile"].map(lambda x:encryption_str(x))
md5_excel_df["idcard_md5"] = md5_excel_df["idcard"].map(lambda x:encryption_str(x,"md5_16","大写"))

数据加密结果如下:

结尾

使用 pandas中的to_excel方法将加密后的数据保存到Excel中,代码如下:

md5_excel_df.to_excel("./md5加密数据已完成.xlsx",index=False)

源码地址

链接:https://pan.baidu.com/s/1rySQlwUvNkVC89qHcvbiRQ?pwd=xuyt
提取码:xuyt

第七章用Python实现对Excel文件中的数据进行md5加密的更多相关文章

  1. python从Microsoft Excel文件中导入数据

    excel中后缀为csv和xls,二者区别如下:1.xls 文件就是Microsoft excel电子表格的文件格式.2.csv是最通用的一种文件格式,它可以非常容易地被导入各种PC表格及数据库中. ...

  2. [Python]将Excel文件中的数据导入MySQL

    Github Link 需求 现有2000+文件夹,每个文件夹下有若干excel文件,现在要将这些excel文件中的数据导入mysql. 每个excel文件的第一行是无效数据. 除了excel文件中已 ...

  3. 用Python的pandas框架操作Excel文件中的数据教程

    用Python的pandas框架操作Excel文件中的数据教程 本文的目的,是向您展示如何使用pandas 来执行一些常见的Excel任务.有些例子比较琐碎,但我觉得展示这些简单的东西与那些你可以在其 ...

  4. Java读取、写入、处理Excel文件中的数据(转载)

    原文链接 在日常工作中,我们常常会进行文件读写操作,除去我们最常用的纯文本文件读写,更多时候我们需要对Excel中的数据进行读取操作,本文将介绍Excel读写的常用方法,希望对大家学习Java读写Ex ...

  5. SQLite从Excel文件中导入数据

    元数据 另存为.csv格式 用记事本打开 打开后的数据 Android客户端开发的时候使用了SQLite数据库,为了测试,需要将一些excel文件中的数据导入到数据库的表中,下面是几个步骤: 数据库表 ...

  6. Python实现对excel的操作

    1.操作excel使用第三方库openpyxl安装:pip install openpyxy引入:import openpyxl2.常用简单操作1)打开excel文件获取工作簿wb = openpyx ...

  7. Apache POI 实现对 Excel 文件读写

    1. Apache POI 简介 Apache POI是Apache软件基金会的开放源码函式库. 提供API给Java应用程序对Microsoft Office格式档案读和写的功能. 老外起名字总是很 ...

  8. 用python的pandas读取excel文件中的数据

    一.读取Excel文件   使用pandas的read_excel()方法,可通过文件路径直接读取.注意到,在一个excel文件中有多个sheet,因此,对excel文件的读取实际上是读取指定文件.并 ...

  9. springMVC从上传的Excel文件中读取数据

    示例:导入客户文件(Excle文件) 一.编辑customer.xlsx 二.在spring的xml文件设置上传文件大小 <!-- 上传文件拦截,设置最大上传文件大小 10M=10*1024*1 ...

  10. matlab读取excel文件中的数据

    1.读取sheet1中的所有数据 1.1首先我们建立一个sheet表,表名为‘111’ 1.2 默认这些文本以及数字都放在sheet1中,我们将此excel选入当前工作目录(必要步骤), 选入当前工作 ...

随机推荐

  1. 【CTO变形记】驱动力的选择

    前言:每个人做事,都有着各种动机在里面,有时候看似不可理解的行为或者选择,初一看,可能是'认知',其实深层次实际是内在驱动力使然.例如,当一个人找我们问各种问题的时候,我们往往会先问'你的意图'是什么 ...

  2. python 动态导入库

    import sys sys.path.append("d:\\") ll = __import__("ll") if __name__ == '__main_ ...

  3. Cubase11/12 安装破解图文教程 【2022年12月29日亲测有效】

    Cubase11/12安装破解图文教程 下载安装包工具 Cubase官网:点击官网进行下载 Cubase11/12工具包:点击立即下载 Cubase12完成破解教程:点击立即查看 安装Cubase11 ...

  4. P19_数据绑定

    数据绑定 数据绑定的基本原则 在 data 中定义数据 在 WXML 中使用数据 在 data 中定义页面的数据 在页面对应的 .js 文件中,把数据定义到 data 对象中即可: Mustache ...

  5. Vue学习:实现用户没有登陆时,访问后自动跳转登录页面

    设计思路 定义路由的时候配置属性,这里使用needLogin标记访问页面是否需要登录 设置路由守卫,每个页面在跳转之前都要经过验证,校验用户信息是否存在,不存在跳转到登录页 用户登录后将用户信息存储在 ...

  6. Hbase学习三:Hbase常用命令总结

    转载请注明出处: 1.Hbase连接 1.1.进入hbase命令行 hbase shell # 或 bin/hbase shell 1.2.查看帮助 help 1.3.查看所有表 list 2.表操作 ...

  7. 代码随想录算法训练营day16 | leetcode ● 104.二叉树的最大深度 559.n叉树的最大深度 ● 111.二叉树的最小深度 ● 222.完全二叉树的节点个数

    基础知识 二叉树的多种遍历方式,每种遍历方式各有其特点 LeetCode 104.二叉树的最大深度 分析1.0 往下遍历深度++,往上回溯深度-- class Solution { int deep ...

  8. Mybatis连接数据库

    从零开始Mybatis连接数据库 创建Maven文件 File-->new-->project-->maven,点击next 配置 在出现的pom.xml文件中<project ...

  9. 基于Python的OpenGL 05 之坐标系统

    1. 引言 本文基于Python语言,描述OpenGL的坐标系统 前置知识可参考: 基于Python的OpenGL 04 之变换 - 当时明月在曾照彩云归 - 博客园 (cnblogs.com) 笔者 ...

  10. vivado报错vivado 12-8300 launch hls failed please see vivado hls.log for details

    报错: 解决方案: 1. Download the "y2k22_patch-1.2.zip" file attached to this page 2. Unzip the fi ...