如何使用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\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'
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章