在项目开发的过程中,测试环节我们总要造不少假数据到系统中,尽量模拟真实环境。比如要创建一批用户名,创建一段文本,或者是电话号码,抑或是街道地址、IP地址等等。
你是否还在绞尽脑汁,想一些天马行空的名字、号码?
python的造假库faker,了解一下!!!
Faker
参考简介
项目地址:Faker
参考文档:Welcome to Faker’s documentation!
安装命令:pip install Faker
创建对象
from faker import Faker
fake = Faker(locale='zh_CN')
初始化对象的时候可以传入语言参数,不传默认是英文,其他参数如下,更详细可参考Faker

开始造假
- 人物:这个可以给孩子起名字用
>>> fake.name() # 姓名
'杨畅'
>>> fake.last_name() # 姓
'宋'
>>> fake.first_name() # 名
'刚'
>>> fake.name_male() # 男性姓名
'李浩'
>>> fake.name_female() # 女性姓名
'王颖'
- 时间
>>> fake.date_time(tzinfo=None) # 随机日期时间
datetime.datetime(2001, 3, 18, 17, 57, 44)
>>> fake.timezone() # 时区
'America/Guatemala'
>>> fake.time(pattern="%H:%M:%S") # 时间(可自定义格式)
'11:21:52'
>>> fake.month() # 随机月份
'02'
>>> fake.month_name() # 随机月份名字
'August'
>>> fake.year() # 随机年
'1974'
>>> fake.day_of_week() # 随机星期几
'Sunday'
>>> fake.date_object() # 随机日期对象
datetime.date(1983, 1, 26)
>>> fake.time_object() # 随机时间对象
datetime.time(17, 8, 56)
>>> fake.unix_time() # 随机unix时间(时间戳)
1223246848
>>> fake.date(pattern="%Y-%m-%d") # 随机日期(可自定义格式)
'1984-04-20'
- 地点🏡
>>> fake.address()
香港特别行政区萍市沙湾重庆街u座 902466
>>> fake.province()
甘肃省
>>> fake.city_name()
西安
>>> fake.street_name()
合肥街
>>> fake.street_address()
兰州路o座
>>> fake.longitude()
-22.075181
>>> fake.district()
静安
- 职位
>>> fake.job()
'Musician'
- 条形码
>>> fake.ean(length=13)
1059053175332
- 公司
>>> fake.company()
创亿信息有限公司
>>> fake.company_prefix()
商软冠联
>>> fake.company_suffix()
科技有限公司
ps:不知道公司叫啥名字的,可以从随机生成试试水
- 邮箱📮
>>> fake.email()
lei51@gmail.com
>>> fake.company_email()
mincui@yongzhao.cn
>>> fake.free_email()
xiacheng@yahoo.com
- 网络相关
>>> fake.image_url(width=None, height=None) #这个竟然是真的图片链接
https://placekitten.com/40/631
>>> fake.ipv4_private(network=False, address_class=None)
172.17.94.140
>>> fake.user_agent()
Mozilla/5.0 (Windows; U; Windows NT 5.0) AppleWebKit/533.42.7 (KHTML, like Gecko) Version/5.0.3 Safari/533.42.7
>>> fake.chrome(version_from=13, version_to=63, build_from=800, build_to=899)
Mozilla/5.0 (Linux; Android 2.0.1) AppleWebKit/531.1 (KHTML, like Gecko) Chrome/48.0.863.0 Safari/531.1
>>> fake.url()
https://www.lujin.cn/
还有很多可以数据可以伪造。。。
那么问题来了:老许,想要个老婆,能否给她伪造个老婆呢?

当然可以,看我骚操作!!!
我们可以造一个属于自己的faker数据
from faker import Faker
from faker.providers import BaseProvider
fake = Faker(locale='zh_CN')
# 创建自定义的provider
class MyProvider(BaseProvider):
def get_laopo(self):
info = {
'姓名': fake.name_female(),
'性别': '女',
'生日': fake.date_time_between(start_date="-25y", end_date="-20y", tzinfo=None),
'家庭住址': fake.address(),
'公司名': fake.company(),
'职业':fake.job()
}
return info
# 添加一个provider
fake.add_provider(MyProvider)
print(fake.get_laopo())
执行结果:
{
'姓名': '乔桂香',
'性别': '女',
'生日': datetime(1997, 6, 25, 16, 45, 33),
'家庭住址': '香港特别行政区杨县友好杨街G座 987997',
'公司名': '创汇科技有限公司',
'工作职位': '玩具设计'
}
老许,你的老婆伪造成功!快来领走吧!!!
最后修改时间:2020-06-19 18:44:44
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




