您的位置:首页技术文章
文章详情页

Python 随机生成测试数据的模块:faker基本使用方法详解

【字号: 日期:2022-07-30 15:20:52浏览:2作者:猪猪

本文实例讲述了Python 随机生成测试数据的模块:faker基本使用方法。分享给大家供大家参考,具体如下:

本文内容: faker的介绍 faker的使用 小例子:生成随机的数据表信息

首发日期:2018-06-15

faker介绍: faker是python的一个第三方模块,是一个github上的开源项目。 主要用来创建一些测试用的随机数据。

官方文档:https://faker.readthedocs.io/en/master/index.html

faker的使用:1.安装模块

pip3 install Faker

【使用faker也能识别成功,不过新版已经更新为Faker】

2.导入模块

from faker import Faker

【主要使用的是Factory类,而导入Faker,会同时导入Factory】

Python 随机生成测试数据的模块:faker基本使用方法详解

3.使用步骤:

3.1初始化:

fake=Faker()Faker()调用的是Factory的create方法,常用参数选项:Python 随机生成测试数据的模块:faker基本使用方法详解 用于生成本地化数据:locale【默认情况下是en_US,所以生成的数据是美式英文的】 zh-CN代表使用中国版想了解更多国家版本,可以参考 https://faker.readthedocs.io/en/master/index.html#localization providers是一个包含了多种生成随机数据的生成器的“提供者”,比如他包含了生产随机姓名的生成器,包含了随机地址的生成器。如果我们想要自己定义随机生成的数据的规则,那么我们需要自定义providers。如何生成一个providers,可以参考https://faker.readthedocs.io/en/master/index.html#how-to-create-a-provider Python 随机生成测试数据的模块:faker基本使用方法详解 3.2.调用方法: 利用Faker对象调用方法,调用方法的返回值就是随机的数据。 不同的数据需要调用不同的方法,常见方法参见下面。

from faker import Faker# fake=Faker() #默认生成美国英文数据fake=Faker(locale=’zh_CN’)# 地址类print('地址类'.center(20,'-'))print(fake.address())#海南省成市丰都深圳路p座 425541print(fake.street_address())#深圳街X座print(fake.street_name())#长沙路print(fake.city_name(),fake.city())#兰州 贵阳市 (相差“市”)print(fake.province())#陕西省#公司类:print('公司类'.center(20,'-'))print(fake.company())#惠派国际公司信息有限公司print(fake.company_suffix())#网络有限公司print(fake.company_prefix())#鑫博腾飞#个人信息类print('个人信息类'.center(20,'-'))print(fake.name())#东浩print(fake.simple_profile())#{’username’: ’leihan’, ’name’: ’武帅’, ’sex’: ’F’, ’address’: ’吉林省淮安市双滦家街C座 210434’, ’mail’: ’lishao@hotmail.com’, ’birthdate’: ’1988-11-12’}print(fake.user_name(),fake.password(special_chars=False))#ajiang zI2QbHy02p#文章类print('文章类'.center(20,'-'))print(fake.word())#当前print(fake.words(3))#[’欢迎’, ’支持’, ’图片’]print(fake.sentence(3))#精华有关一些.print(fake.paragraph())#大家电话空间一起操作图片要求.上海发展到了之间用户也是的人.必须记者关系介绍注册.用户时候投资发布.常用方法:

https://faker.readthedocs.io/en/master/locales/zh_CN.html 由于主要使用中文数据,所以提供常见的方法示例是中文的。想要了解其他的,可以在官网点击其他语言,参考示例结果,不过方法大体上都是相同的。

地址信息类: fake.address():完整地址,比如海南省成市丰都深圳路p座 425541 fake.street_address():街道+地址,比如兴城路A座 fake.street_name():街道名,比如宜都街 fake.city_name():城市名,比如兰州 fake.city():城市,比如兰州市 fake.province():省份名,比如陕西省 fake.postcode():邮编 fake.country():国家公司信息类: fake.company():公司名,比如惠派国际公司信息有限公司 fake.company_suffix():公司名后缀(公司性质),比如网络有限公司 fake.company_prefix():公司名前缀,比如鑫博腾飞日期类: fake.date(pattern='%Y-%m-%d', end_datetime=None) fake.year():随机年份 fake.day_of_week():随机星期数 fake.time(pattern='%H:%M:%S', end_datetime=None):随机时间网络类:

fake.company_email():企业邮箱

fake.email():邮箱 个人信息类:

fake.name():姓名

fake.user_name(*args, **kwargs):用户名,只是随机的英文姓名组合,一般是6位

fake.phone_number():电话号码

fake.simple_profile(sex=None):简略个人信息,包括用户名,姓名,性别,地址,邮箱,出生日期。比如{’username’: ’chao’, ’name’: ’胡秀兰’, ’sex’: ’M’, ’address’: ’宁夏回族自治区玉市沙湾宁德路t座 873713’, ’mail’: ’uxiao@yahoo.com’, ’birthdate’: ’1998-06-12’}

fake.profile(fields=None, sex=None):详略个人信息,比简略个人信息多出公司名、血型、工作、位置、域名等等信息。 fake.password():密码 参数选项:length:密码长度;special_chars:是否能使用特殊字符;digits:是否包含数字;upper_case:是否包含大写字母;lower_case:是否包含小写字母。 默认情况:length=10, special_chars=True, digits=True, upper_case=True, lower_case=True fake.job():工作文章类: fake.word(ext_word_list=None):随机词语 ext_word_list可以是一个列表,那么词语会从列表中取 fake.words(nb=3, ext_word_list=None):随机多个词语 nb是数量,对于words来说是返回多少个词语 fake.sentence(nb_words=6, variable_nb_words=True, ext_word_list=None):随机短语(会包括短语结束标志点号) fake.paragraph(nb_sentences=3, variable_nb_sentences=True, ext_word_list=None):随机段落 fake.paragraphs(nb=3, ext_word_list=None):多个随机段落数据类型类: fake.pystr(min_chars=None, max_chars=20):自定义长度的随机字符串 fake.pyint():随机整数PS:

想了解Faker的更多用法,可以参考官方文档:https://faker.readthedocs.io/en/master/index.html

小例子:生成随机的数据表信息

注意:这里为了例子简便,对于数据库操作就直接使用“命令式”的了,而不使用ORM模型式的了。

实现过程: 利用pymysql连接数据库 创建表 利用fake格式化要插入的数据 利用pymysql执行插入语句代码:

import pymysqlfrom faker import Fakerconn=pymysql.connect(host='localhost',port=3306,user='root',password='123456',db='it',charset='utf8')cursor=conn.cursor()#这里给出表结构,如果使用已存在的表,可以不创建表。sql='''create table user(id int PRIMARY KEY auto_increment,username VARCHAR(20),password VARCHAR(20),address VARCHAR(35) )'''cursor.execute(sql)fake=Faker('zh-CN')for i in range(20): sql='''insert into user(username,password,address) values(’%s’,’%s’,’%s’)''' %(fake.user_name(),fake.password(special_chars=False),fake.address()) cursor.execute(sql)conn.commit()cursor.close()conn.close()结果:

Python 随机生成测试数据的模块:faker基本使用方法详解

PS:这里再提供几款相关工具供大家参考使用:

在线随机生成个人信息数据工具:http://tools.jb51.net/aideddesign/rnd_userinfo

在线随机字符/随机密码生成工具:http://tools.jb51.net/aideddesign/rnd_password

在线随机数字/字符串生成工具:http://tools.jb51.net/aideddesign/suijishu

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数学运算技巧总结》、《Python字符串操作技巧汇总》、《Python编码操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

标签: Python 编程
相关文章: