资讯专栏INFORMATION COLUMN

如何使用faker创建假数据

qc1iu / 2901人阅读

摘要:如何使用创建假数据有些时候我们需要一些假数据来测试,在中有一款非常好用的包,,可以满足这类的需求。

如何使用faker创建假数据

有些时候我们需要一些假数据来测试,在python中有一款非常好用的包,faker,可以满足这类的需求。
项目地址 https://github.com/joke2k/faker

安装:

pip install faker

或者
直接上 github 下载安装即可

使用:

要创建假数据,需要先有一个faker实例

from faker import Faker
fake = Faker()

然后调用方法即可

fake.name()
# "Kristen Ward"

fake.address()
# "26745 Todd Park"
# "West Jamie, NV 91152-9807"

在faker中,name和address这种方法被称为提供器,提供器的类型很多,除了上面提到的name和address,还有:

company : 公司

zipcode : 邮编

bothify :创建随机字符,他接受参数text,然后把text中的#和?替换成随机的数字和字母,例子:

fake.bothify(text="### => ???")
# 849 => DXX
    实际上他是同时调用了lexify和numerify,两者同样需要一个text参数,分别把text中的#和?替换为随机数字和字母

faker的提供器很多,想查找更多提供器,请看:https://faker.readthedocs.io/...

本地化:

想要创建中文数据,可以使用下面的方法:

fake = Faker("zh_CN")

Faker接受的本地化参数,创建的对象会生成对应语言的数据,如果没有找到对应的语言,会使用默认的"en_US"
可以在 https://faker.readthedocs.io/... 中查看所有支持的语言

自定义提供器:

有时候,你会想要创建自己的提供器,这时候只需要继承提供器的基类,并实现一些方法,随后调用add_provider将类加入到faker实例中即可

from faker import Faker
fake = Faker()

# 引入基类
from faker.providers import BaseProvider

# 创建并继承,实现方法
class MyProvider(BaseProvider):
    def foo(self):
        return "bar"

# 添加到实例中
fake.add_provider(MyProvider)

# 调用
fake.foo()
# "bar"
随机种子:

当你想要生成相同的数据时,你需要调用faker的seed方法为其设置种子,这样之后使用提供器的时候,便会产生相同的内容

fake.seed(136)
fake.name()
# "Kelsey Hamilton"

注意,在设置随机种子后,如果调用同一个提供器两次,第二次调用会使faker实例的种子失效

fake.seed(1)
fake.name()
# "Ryan Gallagher"
fake.address()
# "7631 Johnson Village Suite 690
Adamsbury, NC 50008"
fake.name()
# "Stanley Parks"
fake.seed(1)
fake.name()
# "Ryan Gallagher"
fake.name()
# "Jon Cole"
fake.address()
# "70669 Heather Grove
New Sierra, WI 00080-6360"

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/40867.html

相关文章

  • Laravel 中的数据迁移和数据填充

    摘要:本文首发于作者这是一篇基础教程,对标文档中的数据迁移和数据填充。那么,中的数据库迁移概念,就是用于解决团队中保证数据库结构一致的方案。和不同,如果多次执行就会进行多次数据填充。好了,数据迁移和数据填充的基本操作也就这些了。 showImg(https://segmentfault.com/img/remote/1460000012252769?w=648&h=422); 本文首发于 h...

    mengera88 评论0 收藏0
  • Laravel 中缓存驱动的速度比较

    摘要:我们很容易修改缓存驱动方式。这样的话,我们甚至根本不必检查缓存是否过期。与驱动相比,和的速度更快,所以建议在项目较大时使用外部缓存驱动。结论使用文件数据库作为驱动,两者在速度上没有很明显的区别。所以投资高速缓存是值得的。 showImg(https://segmentfault.com/img/remote/1460000014057714?w=1440&h=720); 缓存是web开...

    go4it 评论0 收藏0
  • 前端的 mock server

    摘要:然而扯淡的在前端前端要发请求,所以每个请求的都是,而生产环境服务器又是。前端方案因为我是在校生嘛,没办法了解到大公司的开发方式。可能后端就任性就不遵守,那么这个前端只能靠来调整,然而更多的情况是没办法调整的。 在一个中大型项目中,你不可能一边写着前端一边写后端。全栈太难 :) 像rails那样的开发模式已经很不适合当前的环境了。所有的项目都嚷嚷着前后端分离,那就只能这么干 我之前在做大...

    lastSeries 评论0 收藏0
  • PHP 开发者应了解的 24 个库

    摘要:下面是一个例子这个库要求你至少安装了和其中的一个,这可能意味着,在大多数主机提供商提供的主机上它可能用不了。借助它,你可以忘记如何书写乏味的有一个姊妹库叫,是一个基于的实现。 showImg(http://segmentfault.com/img/bVbJml); 作为一个PHP开发者,现在是一个令人激动的时刻。每天有许许多多有用的库分发出来,在 Github 上很容易发现和使用这些库...

    0x584a 评论0 收藏0
  • 如何使用 Faker.js 来 Mock Node.js 应用数据

    摘要:创建数据库并且往数据库里塞用例数据这件事情,会使我很烦躁。我宁愿花更多的时间在和如何构建前端应用上。初识这是一个很棒的模块,用来数据。文档中的代码告诉你如何使用这些可以很快地开发应用原型。 showImg(https://segmentfault.com/img/remote/1460000009087720?w=800&h=418); 本文作者:Aman Mittal 编译:胡子大...

    fish 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<