化妆品排行榜
  1. 首页 >
  2. 美妆资讯 >
  3. 美妆 >
  1. 轻松制作那些真假难以区分的Python测试数据

美妆资讯
轻松制作那些真假难以区分的Python测试数据
2023-08-04

大家好,我是【T型成长】:理工科直男一枚。闲暇之余分享点文字、编程、设计等干货,希望和你一起成长。

一起学习Python办公自动化,教你快速学习Python的方法,可以站内私信我。

我们提供了一份关于人员信息的数据集,包括用户姓名、性别、地址、手机号等。关键信息没有加密,是不是意味着用户信息泄露了呢?细心的读者可能发现了,这份数据虽然看起来很是逼真,其实它是一份假数据。

这么逼真的假数据,如何做出来的呢?今天我们介绍了Faker模块。Faker模块是python的一个第三方模块。主要用来创建一些测试用的随机数据。

Faker模块功能非常强大,它可以生成多个国家的各种数据,包括个人信息类、地址信息类、公司信息类、日期类、数据类型类、文章类、互联网以及其它类。如图所示。

接下来,通过案例来使用Faker这个模块的安装使用。

生成不同的测试数据

通过 pip 命令直接安装Faker模块。

Pip install Faker

在用Faker()创建faker实例时,可以为实例指定本地化区域参数,默认为’en_US’,因此生成的姓名、地址等信息都是美国的。要生成中文的数据,只需使用fake=Faker(zh-CN)就可以了。

通过下段代码演示Faker模块的基本用法,源代码见code\\12\\faker_1.py。

from faker import Faker

fake=Faker(zh-CN) #生成中文数据

print(fake.name()) #用户姓名

print(fake.user_name()) #用户名

print(fake.password())

print(fake.simple_profile()) #简单的个人信息

print(fake.phone_number())

print(fake.ssn()) #身份证

print(fake.address())

print(fake.postcode()) #邮编

print(fake.email())

print(fake.company())

print(fake.job())

print(fake.date(pattern=%Y-%m-%d))

代码执行结果如下。

陈静

wuqiang

kP*^B6QaoQ

{username: juanzhao, name: 李彬, sex: M, address: 贵州省超市孝南汕尾路W座 313305, mail: junli@gmail.com, birthdate: date(1914, 10, 13)}

13039127096

410900193407027264

上海市大冶市浔阳辽阳街D座 930492

112485

yanguo@minqian.org

七喜信息有限公司

安检员

1983-01-18

把测试数据插入到数据库中

打开MySQL,创建表t_person_info,创建字段如下:

通过下段代码演示把测试数据插入到MySQL数据库中,源代码见faker_db.py。

from faker import Faker

import pymysql

def insert(name,user_name,password,sex,phone_number,ssn,address,postcode,email,company,job,date_time):

try:

#数据库连接,返回数据库连接对象

conn=pymysql.connect(host=localhost,user=root,passwd=123456,db=test,port=3306)

cur=conn.cursor()

insertsql=

insert into t_person_info(name,user_name,password,sex,phone_number,ssn,address,postcode,email,company,job,date_time) values (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)

cur.execute(insertsql,(name,user_name,password,sex,phone_number,ssn,address,postcode,email,company,job,date_time))

conn.commit()

except Exception as e:

print(e)

conn.rollback()

finally:

conn.close()

fake=Faker(zh-CN)

for x in range(30):

insert(fake.name(),fake.user_name(),fake.password(),fake.simple_profile()[sex],

fake.phone_number(),fake.ssn(),fake.address(),fake.postcode(),

fake.email(),fake.company(),fake.job(),fake.date(pattern=%Y-%m-%d))

代码执行结果如下,打开MySQL的客户端工具Navicat查看,如图12-12所示。

这段代码用到了以下知识,导入模块的2种方式、函数的定义、字符串多行的定义、try…except…finally异常捕获、for循环定义、函数调用等知识点,这些知识点在前面的章节都进行了详细的解释。

版权声明:CosMeDna所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系删除!

本文链接://www.cosmedna.com/article/431595183.html