溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python如何用Faker造假數(shù)據(jù)

發(fā)布時(shí)間:2021-10-19 10:11:55 來源:億速云 閱讀:150 作者:柒染 欄目:大數(shù)據(jù)

Python如何用Faker造假數(shù)據(jù),很多新手對此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。 

在程序測試的時(shí)候,常常需要用到很多數(shù)據(jù)來進(jìn)行測試。

比如姓名、性別、年齡、電話、郵箱等等。

如果手動(dòng)制造數(shù)據(jù)的話,起名字比如“小明”、“小紅”、“張三”、“李四”這些,有沒有考慮這些名字的感受,他們也很累的吧。

再比如密碼,網(wǎng)上排名最爛的密碼,不也是“123456”,“abcdef”,“asdf”這些。

這樣無厘頭地制作數(shù)據(jù)確實(shí)很傷神,效率還低,那該怎么辦?

 

Faker擴(kuò)展庫

這時(shí),Python擴(kuò)展庫Faker來了,帶著它那各種各樣的數(shù)據(jù)來了。

先安裝faker

pip install Faker
 

創(chuàng)建faker對象

from faker import Faker
fake = Faker()
 

隨機(jī)生成一個(gè)名字

fake.name()  # 'Nancy Horton'
 

上邊生成的名字是英文的,想要個(gè)中文名字怎么辦?

很簡單,在創(chuàng)建Faker對象的時(shí)候,指定語言“中文”就可以。

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()等獲取單個(gè)信息

這些字段其實(shí)記不住也沒什么,需要用哪個(gè)的時(shí)候查閱官方文檔就行。

文檔鏈接

https://faker.readthedocs.io/en/master/providers.html

再比如生成“職位”信息

In [2]: fake.job()
Out[2]: '電氣/電器工程師'
 

生成python的數(shù)據(jù)類型

# 生成一個(gè)字典
In [3]: fake.pydict()
Out[3]:
{'生產(chǎn)': 'OlmMWPfQMJYxeiJtZSFC',
 '有些': 'jUYzbWgDEqvzjiAsubSX',
 '資源': 7670,
 '應(yīng)用': 804210265906561.0,
 '國際': 9113,
 '電影': 'https://yangtang.cn/homepage.jsp',
 '方面': 'RGfbqIgxqTbnjkGDpoVO',
 '為什': 1947,
 '地址': 7021,
 '時(shí)候': 'oxia@hotmail.com'}
 

生成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'
 

生成個(gè)人信息

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': 'oliao@yahoo.com',
 'birthdate': datetime.date(1971, 2, 13)}
 

如果想生成多條個(gè)人信息,可以利用for循環(huán),把每個(gè)字典在添加到列表里,導(dǎo)出一個(gè)DataFrame

 

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注億速云行業(yè)資訊頻道,感謝您對億速云的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI