龙空技术网

轻松制作那些真假难以区分的Python测试数据

Python有温度 207

前言:

如今我们对“python判断真假函数”都比较关怀,同学们都需要知道一些“python判断真假函数”的相关内容。那么小编在网络上网罗了一些对于“python判断真假函数””的相关知识,希望你们能喜欢,小伙伴们一起来学习一下吧!

大家好,我是【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循环定义、函数调用等知识点,这些知识点在前面的章节都进行了详细的解释。

标签: #python判断真假函数