Python中Faker庫介紹及如何使用創造模擬資料

樂亦亦樂發表於2020-10-22

開發專案的時,為了測試常需要造假資料,經常要儘量的模擬真實環境,通常要費大量手工而且造出來的資料,而且通常手工造出來的看起來也很彆扭,費時又費事,有沒有更好的辦法?有,這裡給大家介紹一個“專業造數“庫Faker,滿足你對模擬資料的所有需求。

安裝Faker

 可在安裝路徑下檢視所提供的資料:

裡面有個 引數 locale:為生成資料的文化選項(語種),預設為 en_US,只有使用了相關文化,才能生成相對應的隨機資訊

常見的文化選項:

  • zh_CN - Chinese (China Mainland)

  • zh_TW - Chinese (China Taiwan)

  • en_US - English (United States)

 

 

因為省份和城市都是隨機生成的,可能不匹配。畢竟是假資料嗎,所以問題不大!!

 

以上是對Faker進行簡要的介紹,接下來測試一下效果!!

簡單使用

其他方法

地理資訊類

city_suffix():市,縣
country():國家
country_code():國家編碼
district():區
geo_coordinate():地理座標
latitude():地理座標(緯度)
longitude():地理座標(經度)
postcode():郵編
province():省份
address():詳細地址
street_address():街道地址
street_name():街道名
street_suffix():街、路

基礎資訊類

ssn():生成身份證號
bs():隨機公司服務名
company():隨機公司名(長)
company_prefix():隨機公司名(短)
company_suffix():公司性質,如'資訊有限公司'
credit_card_expire():隨機信用卡到期日,如'03/30'
credit_card_full():生成完整信用卡資訊
credit_card_number():信用卡號
credit_card_provider():信用卡型別
credit_card_security_code():信用卡安全碼
job():隨機職位
first_name_female():女性名
first_name_male():男性名
name():隨機生成全名
name_female():男性全名
name_male():女性全名
phone_number():隨機生成手機號
phonenumber_prefix():隨機生成手機號段,如139

郵箱資訊類

ascii_company_email():隨機ASCII公司郵箱名
ascii_email():隨機ASCII郵箱:
company_email():公司郵箱
email():普通郵箱
safe_email():安全郵箱

網路基礎資訊類

domain_name():生成域名
domain_word():域詞(即,不包含字尾)
ipv4():隨機IP4地址
ipv6():隨機IP6地址
mac_address():隨機MAC地址
tld():網址域名字尾(.com,.net.cn,等等,不包括.)
uri():隨機URI地址
uri_extension():網址檔案字尾
uri_page():網址檔案(不包含字尾)
uri_path():網址檔案路徑(不包含檔名)
url():隨機URL地址
user_name():隨機使用者名稱
image_url():隨機URL地址

數字資訊

numerify():三位隨機數字
random_digit():0~9隨機數
random_digit_not_null():1~9的隨機數
random_int():隨機數字,預設0~9999,可以通過設定min,max來設定
random_number():隨機數字,引數digits設定生成的數字位數
pyfloat():隨機Float數字
pyint():隨機Int數字(參考random_int()引數)
pydecimal():隨機Decimal數字(參考pyfloat引數)

文字加密類

pystr():隨機字串
random_element():隨機字母
random_letter():隨機字母
paragraph():隨機生成一個段落
paragraphs():隨機生成多個段落
sentence():隨機生成一句話
sentences():隨機生成多句話,與段落類似
text():隨機生成一篇文章
word():隨機生成詞語
words():隨機生成多個詞語,用法與段落,句子,類似
binary():隨機生成二進位制編碼
boolean():True/False
language_code():隨機生成兩位語言編碼
locale():隨機生成語言/國際 資訊
md5():隨機生成MD5
null_boolean():NULL/True/False
password():隨機生成密碼,可選引數:length:密碼長度;special_chars:是否能使用特殊字元;digits:是否包含數字;upper_case:是否包含大寫字母;lower_case:是否包含小寫字母
sha1():隨機SHA1
sha256():隨機SHA256
uuid4():隨機UUID

 

時間資訊類

date():隨機日期
date_between():隨機生成指定範圍內日期,引數:start_date,end_date
date_between_dates():隨機生成指定範圍內日期,用法同上
date_object():隨機生產從1970-1-1到指定日期的隨機日期。
date_time():隨機生成指定時間(1970年1月1日至今)
date_time_ad():生成公元1年到現在的隨機時間
date_time_between():用法同dates
future_date():未來日期
future_datetime():未來時間
month():隨機月份
month_name():隨機月份(英文)
past_date():隨機生成已經過去的日期
past_datetime():隨機生成已經過去的時間
time():隨機24小時時間
timedelta():隨機獲取時間差
time_object():隨機24小時時間,time物件
time_series():隨機TimeSeries物件
timezone():隨機時區
unix_time():隨機Unix時間
year():隨機年份

 

隨機生成一些資訊寫入Excel表格中:

import os
from faker import Faker
from openpyxl import workbook  # 寫入Excel表所用
from openpyxl import load_workbook  # 讀取Excel表所用
wb = workbook.Workbook()  # 建立Excel物件
faker = Faker("zh-CN")
ws = wb.active  # 獲取當前正在操作的表物件
# 往表中寫入標題行,以列表形式寫入!
ws.append(['序號', '姓名', '身份證號碼', '手機號', '公司郵箱', '公司名','郵編','家庭住址'])
#隨機生成15條資料存入Excel中
for i in range(15):
    ws.append([i, faker.name(), faker.ssn(), faker.phone_number(), faker.company_email(), faker.company(),faker.postcode(),faker.address()])
wb.save('faker.xlsx')

執行效果:

 

 

參考:https://blog.csdn.net/mall_lucy/article/details/108655317

公眾號:Python開發者     《Python中神奇的第三方庫:Faker》

 

相關文章