Python | 使用 faker 库生成逼真的测试数据的方法-实例:批量生成测试数据
最编程
2024-08-13 21:38:49
...
1)数据保存到Excel:
实现步骤:
(1)通过openpyxl打开Excel
(2)获取Excel的所有sheet页
(3)通过fake生成数据,写入单元格
(4)保存Excel
代码:
1 from faker import Faker 2 from openpyxl import load_workbook 3 4 # 1、从faker模块导入Faker这个类。 5 # 2、实例化,保存到变量fake中。 6 # 3、调用name()方法随机生成一个名字。 7 # 4、调用address()方法随机生成地址信息。 8 9 10 fake = Faker(locale='zh_CN') 11 12 wb = load_workbook("1.xlsx") 13 14 for sheetName in wb.sheetnames: 15 sheet = wb[sheetName] 16 for rownum in range(2, 100): 17 sheet.cell(row=rownum, column=1).value = fake.name() 18 sheet.cell(row=rownum, column=2).value = fake.address() 19 sheet.cell(row=rownum, column=3).value = fake.phone_number() 20 sheet.cell(row=rownum, column=4).value = fake.ssn(min_age=18, max_age=18) 21 22 wb.save("1.xlsx")
运行结果如下:
2)数据保存到mysql数据库:
实现步骤:
(1)通过pymysql连接数据库
(2)创建数据表
(3)通过fake生成数据,并形成sql语句
(4)通过pymysql执行插入语句
代码:
1 from faker import Faker 2 3 import pymysql 4 5 6 7 conn = pymysql.connect(host="xx.xxx.xxx.xx", port=3306, user="xxx", password="xxx", db="xx", charset="utf8") 8 9 10 11 cursor = conn.cursor() 12 13 # 这里给出表结构,如果使用已存在的表,可以不创建表。 14 15 sql = """ 16 17 create table user( 18 19 id int PRIMARY KEY auto_increment, 20 21 username VARCHAR(20), 22 23 password VARCHAR(20), 24 25 address VARCHAR(35), 26 27 tel VARCHAR(20), 28 29 ssn VARCHAR(20) 30 31 ) 32 33 """ 34 35 cursor.execute(sql) 36 37 38 39 fake = Faker("zh-CN") 40 41 for i in range(20): 42 43 sql = """insert into user(username,password,address,tel,ssn) 44 45 values('%s','%s','%s','%s','%s')""" \ 46 47 % (fake.user_name(), fake.password(special_chars=False), fake.address(), fake.phone_number(), fake.ssn(min_age=18, max_age=88, gender="M")) 48 49 cursor.execute(sql) 50 51 52 53 conn.commit() 54 55 cursor.close() 56 57 conn.close()
运行结果如下:
PS:不知道细心的你,有没有发现地址看起来怪怪的啊。
是的,虽然数据看起来还挺逼真的,但是这并不是真实的地址,而是将省、市、街道之类的随机组合在一起的。
原因在于,address的源代码中,并没有维护它们的对应关系,而且有些市或区县是随便写的。有兴趣的,可以看下源代码,路径参照:
D:\Python\Python37\Lib\site-packages\faker\providers\address\zh_CN
原文地址:https://www.cnblogs.com/jessie-wu/p/14899300.html
上一篇: 让物联网为“中国制造”插上腾飞的翅膀
推荐阅读
-
了解YUV和RGB的不同之处及其对YUV444、YUV422、YUV411和YUV420的介绍
-
踞觑yuv422、yuv420和yuv444间的差异
-
每周总结20130814——Android NDK环境的搭建和使用,YUV420SP格式图像的处理
-
二、代码实现YUV420图像的水平拼接
-
重新表达该标题:编码格式YUV420的解释
-
转换NV12为YUV420格式的百转工具
-
研究针对 YUV420 颜色空间的深度图像压缩
-
解密Android Bitmap转I420的难题,附图文详解YUV420数据格式
-
互相转换的BGRA、RGBA和YUV420
-
如何实现neon优化的yuv420转rgb24汇编代码,iOS/Android可用的具体操作步骤