大家好,我是【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