暂无图片
暂无图片
3
暂无图片
暂无图片
暂无图片

造假:python造假库Faker,造最真实的假数据

一叶扁舟 2020-06-11
2830

在项目开发的过程中,测试环节我们总要造不少假数据到系统中,尽量模拟真实环境。比如要创建一批用户名,创建一段文本,或者是电话号码,抑或是街道地址、IP地址等等。

你是否还在绞尽脑汁,想一些天马行空的名字、号码?

python的造假库faker,了解一下!!!

Faker

参考简介

项目地址:Faker
参考文档:Welcome to Faker’s documentation!

安装命令:pip install Faker

创建对象

from faker import Faker

fake = Faker(locale='zh_CN')

初始化对象的时候可以传入语言参数,不传默认是英文,其他参数如下,更详细可参考Faker
image.png

开始造假

  • 人物:这个可以给孩子起名字用
>>> 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/

还有很多可以数据可以伪造。。。

那么问题来了:老许,想要个老婆,能否给她伪造个老婆呢?

image.png

当然可以,看我骚操作!!!

我们可以造一个属于自己的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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论