23

faker生成器生成虚拟数据的Python模块

 3 years ago
source link: http://www.cnblogs.com/zwhy8/p/13335947.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

前言

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

作者:行哥

今天给大家介绍一个Faker模块,一款基于Python的测试数据生成工具,无论是用于初始化数据库,创建XML文件,或是生成压测数据,Faker都是不错的选择。

  • 1.Faker工具包
  • 2.生成数据
    • 2.1 获取随机数据
    • 2.2 生成本地化数据
  • 3.最后

mU7Vrya.gif

1.Faker工具包

只需要使用pip便可下载该工具包

pip install faker

如果下载速度比较慢的话,可以使用国内镜像源来下载

国内源:
- 清华:https://pypi.tuna.tsinghua.edu.cn/simple
- 阿里云:http://mirrors.aliyun.com/pypi/simple/
- 中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
- 华中理工大学:http://pypi.hustunique.com/
- 山东理工大学:http://pypi.sdutlinux.org/
- 豆瓣:http://pypi.douban.com/simple/
例如:pip3 install -i https://pypi.doubanio.com/simple/ faker

2.生成数据

2.1 获取随机数据

使用faker.Factory.create()创造并初始化faker生成器,faker生成器可以通过访问按所需数据类型命名的属性来生成数据

from faker import Faker
faker = Faker() # 创建对象
print('name:', faker.name())
print('address:', faker.address())
print('text:', faker.text())

运行结果如下:

name: Jeremiah Brown
address: 32553 Brian Village Suite 438
West Jared, SC 86824
text: Care professional decision beautiful office although indeed. Newspaper away can prove history hour bank table. Area wear effect action war.

2.2 生成本地化数据

在创建对象的时候可以指定所在区域与语言生成想要的测试数据,当然也是支持中文数据的,在创建对象中加入"zh_CN"数据即可

from faker import Faker
faker = Faker("zh_CN")
for i in range(10):
    print('name:', faker.name())

运行结果如下

name: 张涛
name: 王金凤
name: 程秀芳
name: 柳峰
name: 陈杨
name: 刘慧
name: 喻柳
name: 宋宇
name: 张岩
name: 戴波

这个工具包提供了多个方法来生成数据,利用这些方法来生成一个“女朋友”的详细数据非常简单

  • faker.providers.address # 地址
  • faker.providers.company # 公司
  • faker.providers.internet # 网络信息
  • faker.providers.job # 工作
  • faker.providers.lorem # 文本
  • faker.providers.person # 个人
  • faker.providers.phone_number # 手机号码
  • ker.providers.ssn

代码如下:

from faker import Faker
faker = Faker("zh_CN")
print('姓名:', faker.name())# 随机输出中文姓名
print('联系方式:', faker.phone_number())# 随机输出电话号码
print('地址:', faker.address())# 随机输出地址
print('公司:', faker.bs())# 随机输出公司
print('工作:', faker.job())# 随机输出工作
print('邮箱:', faker.company_email())# 随机输出邮箱
print('文本:', faker.text())

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK