一、faker库简介
在编写程序过程中,我们常常需要用到很多数据来进行测试。
如果要是手动制造数据的话,肯定要花费大把精力,这不合理。
此时我们应该使用Faker这个Python库,用它来生成各种各样的伪数据。
二、依赖库安装
pip install faker -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip install pymysql -i https://pypi.tuna.tsinghua.edu.cn/simple/
三、数据库表信息
CREATE TABLE ` kszy_ destination _user ` (
`id` bigint(20) NOT NULL COMMENT '自增id,用户id',
`tenant_identifier` varchar(64) DEFAULT NULL COMMENT '租户标识符',
`created_at` datetime DEFAULT NULL COMMENT '创建时间',
`created_by` varchar(64) DEFAULT NULL COMMENT '创建者id',
`metadata` varchar(255) DEFAULT NULL COMMENT '元数据',
`address` varchar(255) DEFAULT NULL COMMENT '单位详细地址',
`administrative_region` varchar(255) DEFAULT NULL COMMENT '行政区',
`age` int(20) DEFAULT NULL COMMENT '年龄',
`company` varchar(255) DEFAULT NULL COMMENT '单位',
`contact_phone` varchar(255) DEFAULT NULL COMMENT '联系电话',
`id_card_num` varchar(255) DEFAULT NULL COMMENT '证件号码',
`name` varchar(255) DEFAULT NULL COMMENT '姓名',
`sex` varchar(4) DEFAULT NULL COMMENT '性别',
`id_card_type` varchar(255) DEFAULT NULL COMMENT '证件类型',
PRIMARY KEY (`id`),
KEY `id_card_num_index` (`id_card_num`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
四、代码
import pymysql
from faker import Faker
import random
#连接接数据库
db=pymysql.connect(
user="root",
password="123456",
port=3306,
host="127.0.0.1",
db="cmdb",
charset="utf8"
)
# 使用 cursor() 方法创建一个游标对象cur
cur = db.cursor()
fk = Faker(locale="zh-CN")
for i in range(5,8):
number = fk.credit_card_number()
res2 = fk.date_between(start_date="-3y", end_date="-1y")
number2 = fk.credit_card_number()
address = fk.address()
province = fk.province()
#因为没有找到生成年龄的方法所以用random来生成随机数作为年龄
age = random.randint(20,40)
compancy = fk.company()
phone = fk.phone_number()
name = fk.name()
#性别和年龄一样
num = random.randint(1,2)
if num == 1 :
sex = '男'
else:
sex = '女'
card = fk.ssn()
sql="""insert into kszy_destination_user(id,tenant_identifier,created_at,created_by,metadata,address,administrative_region,age,company,contact_phone,id_card_num,name,sex,id_card_type)values(%d,'%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s')"""%(i,number,res2,number2,number2,address,province,age,compancy,phone,card,name,sex,card)
print(sql)
try:
cur.execute(sql)
db.commit()
except Exception as e:
print('错误:{}'.format(str(e)))
db.rollback()
db.close()
由于网上有很多关于faker的用法,这里就不作过多介绍了,需要的话可以自行百度