如何使用faker建立假數據

如何使用faker建立假數據

有些時候咱們須要一些假數據來測試,在python中有一款很是好用的包,faker,能夠知足這類的需求。
項目地址 https://github.com/joke2k/fakerhtml

安裝:

pip install fakerpython

或者
直接上 github 下載安裝便可git

使用:

要建立假數據,須要先有一個faker實例github

from faker import Faker
fake = Faker()

而後調用方法便可ide

fake.name()
# 'Kristen Ward'

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

在faker中,name和address這種方法被稱爲提供器,提供器的類型不少,除了上面提到的name和address,還有:測試

  • company : 公司
  • zipcode : 郵編
  • bothify :建立隨機字符,他接受參數text,而後把text中的#和?替換成隨機的數字和字母,例子:ui

    fake.bothify(text='### => ???')
    # 849 => DXX
    實際上他是同時調用了lexify和numerify,二者一樣須要一個text參數,分別把text中的#和?替換爲隨機數字和字母

faker的提供器不少,想查找更多提供器,請看:https://faker.readthedocs.io/...code

本地化:

想要建立中文數據,能夠使用下面的方法:htm

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\nAdamsbury, NC 50008'
fake.name()
# 'Stanley Parks'
fake.seed(1)
fake.name()
# 'Ryan Gallagher'
fake.name()
# 'Jon Cole'
fake.address()
# '70669 Heather Grove\nNew Sierra, WI 00080-6360'
相關文章
相關標籤/搜索