Python 造假数据,用Faker就够了

Python实战社群

Java实战社群

长按识别下方二维码,按需求添加

扫码关注添加客服

进Python社群▲

扫码关注添加客服

进Java社群

作者丨天作 

来源丨天作之程(jhtmtzzc) 

在程序测试的时候,常常需要用到很多数据来进行测试。

比如姓名、性别、年龄、电话、邮箱等等。

如果手动制造数据的话,起名字比如“小明”、“小红”、“张三”、“李四”这些,有没有考虑这些名字的感受,他们也很累的吧。

再比如密码,网上排名最烂的密码,不也是“123456”,“abcdef”,“asdf”这些。

这样无厘头地制作数据确实很伤神,效率还低,那该怎么办?

Faker扩展库

这时,Python扩展库Faker来了,带着它那各种各样的数据来了。

先安装faker

pip install Faker

创建faker对象

from faker import Faker
fake = Faker()

随机生成一个名字

fake.name()  # 'Nancy Horton'

上边生成的名字是英文的,想要个中文名字怎么办?

很简单,在创建Faker对象的时候,指定语言“中文”就可以。

fake = Faker("zh_CN")

一些常用的语言包括以下等等:

  • 简体中文:zh_CN

  • 繁体中文:zh_TW

  • 美国英文:en_US

  • 英国英文:en_GB

  • 德文:de_DE

  • 日文:ja_JP

  • 韩文:ko_KR

  • 法文:fr_FR

都有什么样的数据

用faker可以生成哪些数据呢?

faker 提供了一些Standard Providers,列出了一些较为较为常用的数据。

  • address

  • company

  • date_time

  • job

  • person

  • phone_number

  • profile

  • python

  • user_agent

比如生成“地址”信息

In [1]: fake.address()
Out[1]: '北京市大冶市海陵赵路x座 941837'

这里给出的是一整条“地址”的信息,你也可以通过building_number()、city()、street_address()等获取单个信息

这些字段其实记不住也没什么,需要用哪个的时候查阅官方文档就行。

文档链接

https://faker.readthedocs.io/en/master/providers.html

再比如生成“职位”信息

In [2]: fake.job()
Out[2]: '电气/电器工程师'

生成python的数据类型

# 生成一个字典
In [3]: fake.pydict()
Out[3]:
{'生产': 'OlmMWPfQMJYxeiJtZSFC',
 '有些': 'jUYzbWgDEqvzjiAsubSX',
 '资源': 7670,
 '应用': 804210265906561.0,
 '国际': 9113,
 '电影': 'https://yangtang.cn/homepage.jsp',
 '方面': 'RGfbqIgxqTbnjkGDpoVO',
 '为什': 1947,
 '地址': 7021,
 '时候': 'oxia@hotmail.com'}

生成user_agent

In [4]: fake.chrome()
Out[4]: 'Mozilla/5.0 (iPad; CPU iPad OS 4_2_1 like Mac OS X) AppleWebKit/531.2 (KHTML, like Gecko) CriOS/55.0.807.0 Mobile/62B715 Safari/531.2'

生成个人信息

In [5]: fake.profile()
Out[5]:
{'job': '仓库管理员',
 'company': '太极传媒有限公司',
 'ssn': '370302198911123749',
 'residence': '云南省桂英市沈北新王路k座 204494',
 'current_location': (Decimal('32.942144'), Decimal('95.019663')),
 'blood_group': 'O-',
 'website': ['https://www.minyan.cn/'],
 'username': 'yangwen',
 'name': '蒋璐',
 'sex': 'M',
 'address': '宁夏回族自治区宁德县丰都长沙街a座 685268',
 'mail': 'oliao@yahoo.com',
 'birthdate': datetime.date(1971, 2, 13)}

如果想生成多条个人信息,可以利用for循环,把每个字典在添加到列表里,导出一个DataFrame

我是小结

本文主要介绍了使用Faker库,生成一些“假”数据,方便测试的时候使用。可针对自己的需求,写好脚本,直接生成DateFrame,岂不是很自动化。

如遇到想要的数据,忘记了关键词,记得随时翻阅官方文档。

程序员专栏 扫码关注填加客服 长按识别下方二维码进群

近期精彩内容推荐:   写外挂赚12万获刑,被抓才知道帮团队赚300万 程序员高薪盛宴背后:程序员正在消失? 教你构建 Python 编程的核心知识体系! 分享史上Java最牛逼,最简短的代码

在看点这里好文分享给更多人↓↓
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值