Python造假數(shù)據(jù),用這個庫
在程序測試的時候,常常需要用到很多數(shù)據(jù)來進行測試。
比如姓名、性別、年齡、電話、郵箱等等。
如果手動制造數(shù)據(jù)的話,起名字比如“小明”、“小紅”、“張三”、“李四”這些,有沒有考慮這些名字的感受,他們也很累的吧。
再比如密碼,網(wǎng)上排名最爛的密碼,不也是“123456”,“abcdef”,“asdf”這些。
這樣無厘頭地制作數(shù)據(jù)確實很傷神,效率還低,那該怎么辦?
Faker擴展庫
這時,Python擴展庫Faker來了,帶著它那各種各樣的數(shù)據(jù)來了。
先安裝faker
pip install Faker
創(chuàng)建faker對象
from faker import Faker
fake = Faker()
隨機生成一個名字
fake.name() # 'Nancy Horton'上邊生成的名字是英文的,想要個中文名字怎么辦?
很簡單,在創(chuàng)建Faker對象的時候,指定語言“中文”就可以。
fake = Faker("zh_CN")
一些常用的語言包括以下等等:
簡體中文:zh_CN 繁體中文:zh_TW 美國英文:en_US 英國英文:en_GB 德文:de_DE 日文:ja_JP 韓文:ko_KR 法文:fr_FR
都有什么樣的數(shù)據(jù)
用faker可以生成哪些數(shù)據(jù)呢?
faker 提供了一些Standard Providers,列出了一些較為較為常用的數(shù)據(jù)。
address company date_time job person phone_number profile python user_agent
比如生成“地址”信息
In [1]: fake.address()
Out[1]: '北京市大冶市海陵趙路x座 941837'
這里給出的是一整條“地址”的信息,你也可以通過building_number()、city()、street_address()等獲取單個信息
這些字段其實記不住也沒什么,需要用哪個的時候查閱官方文檔就行。
文檔鏈接
https://faker.readthedocs.io/en/master/providers.html
再比如生成“職位”信息
In [2]: fake.job()
Out[2]: '電氣/電器工程師'
生成python的數(shù)據(jù)類型
# 生成一個字典
In [3]: fake.pydict()
Out[3]:
{'生產(chǎn)': 'OlmMWPfQMJYxeiJtZSFC',
'有些': 'jUYzbWgDEqvzjiAsubSX',
'資源': 7670,
'應用': 804210265906561.0,
'國際': 9113,
'電影': 'https://yangtang.cn/homepage.jsp',
'方面': 'RGfbqIgxqTbnjkGDpoVO',
'為什': 1947,
'地址': 7021,
'時候': '[email protected]'}
生成user_agent
In [4]: fake.chrome()
Out[4]: 'Mozilla/5.0 (iPad; CPU iPad OS 4_2_1 like Mac OS X) AppleWebKit/531.2 (KHTML, like Gecko) CriOS/55.0.807.0 Mobile/62B715 Safari/531.2'
生成個人信息
In [5]: fake.profile()
Out[5]:
{'job': '倉庫管理員',
'company': '太極傳媒有限公司',
'ssn': '370302198911123749',
'residence': '云南省桂英市沈北新王路k座 204494',
'current_location': (Decimal('32.942144'), Decimal('95.019663')),
'blood_group': 'O-',
'website': ['https://www.minyan.cn/'],
'username': 'yangwen',
'name': '蔣璐',
'sex': 'M',
'address': '寧夏回族自治區(qū)寧德縣豐都長沙街a座 685268',
'mail': '[email protected]',
'birthdate': datetime.date(1971, 2, 13)}
如果想生成多條個人信息,可以利用for循環(huán),把每個字典在添加到列表里,導出一個DataFrame
小結(jié)
本文主要介紹了使用Faker庫,生成一些“假”數(shù)據(jù),方便測試的時候使用。可針對自己的需求,寫好腳本,直接生成DateFrame,豈不是很自動化。
如遇到想要的數(shù)據(jù),忘記了關(guān)鍵詞,記得隨時翻閱官方文檔。
祝大家玩得愉快。如果文章對你有幫助,歡迎轉(zhuǎn)發(fā)/點贊/收藏~
作者:天作
_往期文章推薦_
