软硬件环境
- windows 10 64bit
- anaconda3 with python 3.7.4
- Faker
视频看这里
此处是youtube
的播放链接,需要科学上网。喜欢我的视频,记得订阅我的频道,点赞并分享,谢谢。
Faker简介
Faker
是一个专门用来生成模拟数据的一个python
库,利用它可以虚拟出各式各样的数据,用于调试、测试等。利用的Faker
的provider
机制,我们甚至还可以自定义自己的模拟数据方法,实现Faker
库中没有的功能。
安装
我们还是使用pip
安装
pip install Faker
代码实践
我们使用ipython
来进行代码演示,Faker
中可模拟的数据非常非常的多,这里仅仅列举了常见的几个方法
C:\Users\admin>ipython.exe
Python 3.7.4 (default, Aug 9 2019, 18:34:13) [MSC v.1915 64 bit (AMD64)]
Type 'copyright', 'credits' or 'license' for more information
IPython 7.8.0 -- An enhanced Interactive Python. Type '?' for help.
In [1]: from faker import Faker
In [2]: fake1 = Faker()
In [3]: fake1.name()
Out[3]: 'Chris Todd'
In [4]: fake1.first_name()
Out[4]: 'Laura'
In [5]: fake1.email()
Out[5]: 'bakerlaura@ramos-hull.com'
In [6]: fake1.url()
Out[6]: 'https://foster-donovan.com/'
In [7]: fake2 = Faker("zh_CN")
In [8]: fake2.name()
Out[8]: '周欢'
In [9]: fake2.first_name()
Out[9]: '帅'
In [10]: fake2.name()
Out[10]: '黄霞'
注意到,同一个方法(name()
),每一次输出的结果是不一样的。如果想输出结果一样,可以这么做
fake2.random.seed(123)
fake2.name()
fake2.random.seed(123)
fake2.name()
Faker
中的方法都是由一个个的provider
来提供的,这个可以通过查看相应的方法来确认,如fake2.name
就是这个<bound method Provider.name of <faker.providers.person.zh_CN.Provider object at 0x000002532DA2EC08>>
来实现的。文章的最后我们自己来写一个provider
。
from faker.providers import BaseProvider
class MyProvider(BaseProvider):
def hello(self):
return "hello"
fake1.add_provider(MyProvider)
print(fake1.hello())
代码的执行结果就是hello
。这个就是最简单的provider
了。