Python Faker的使用(1):基礎使用方法與函數速查,生成隨機數據

    在軟件需求、開發、測試過程當中,有時候須要使用一些測試數據,針對這種狀況,咱們通常要麼使用已有的系統數據,要麼須要手動製造一些數據。html

    在手動製造數據的過程當中,可能須要花費大量精力和工做量,如今好了,有一個Python包可以協助你完成這方面的工做。linux

1.什麼是Fakergit

    Faker是一個Python包,開源的GITHUB項目,主要用來建立僞數據,使用Faker包,無需再手動生成或者手寫隨機數來生成數據,只須要調用Faker提供的方法,便可完成數據的生成。github

    項目地址:https://github.com/joke2k/fakerchrome

2.安裝Faker數組

    方法一:瀏覽器

        pip install faker安全

    方法二:dom

        經過上方提供的github地址,來下載編譯安裝。ide

3.Faker的使用

    引用包:

        from faker import Faker

    初始化:

        f=Faker(locale='zh_CN')

    關於初始化參數locale:爲生成數據的文化選項,默認爲en_US,只有使用了相關文化,才能生成相對應的隨機信息(好比:名字,地址,郵編,城市,省份等)

可選擇的文化信息:

ar_EG - Arabic (Egypt)

ar_PS - Arabic (Palestine)

ar_SA - Arabic (Saudi Arabia)

bg_BG - Bulgarian

cs_CZ - Czech

de_DE - German

dk_DK - Danish

el_GR - Greek

en_AU - English (Australia)

en_CA - English (Canada)

en_GB - English (Great Britain)

en_US - English (United States)

es_ES - Spanish (Spain)

es_MX - Spanish (Mexico)

et_EE - Estonian

fa_IR - Persian (Iran)

fi_FI - Finnish

fr_FR - French

hi_IN - Hindi

hr_HR - Croatian

hu_HU - Hungarian

it_IT - Italian

ja_JP - Japanese

ko_KR - Korean

lt_LT - Lithuanian

lv_LV - Latvian

ne_NP - Nepali

nl_NL - Dutch (Netherlands)

no_NO - Norwegian

pl_PL - Polish

pt_BR - Portuguese (Brazil)

pt_PT - Portuguese (Portugal)

ru_RU - Russian

sl_SI - Slovene

sv_SE - Swedish

tr_TR - Turkish

uk_UA - Ukrainian

zh_CN - Chinese (China)

zh_TW - Chinese (Taiwan)

而後便可使用系統提供的方法:

 

 
一段簡單的測試代碼

f.name()  #生成姓名

f.address() #生成地址

4.經常使用方法一覽

city_suffix():市,縣

country():國家

country_code():國家編碼

district():區

geo_coordinate():地理座標

latitude():地理座標(緯度)

longitude():地理座標(經度)

lexify():替換全部問號(「?」)帶有隨機字母的事件。

numerify():三位隨機數字

postcode():郵編

province():省份

street_address():街道地址

street_name():街道名

street_suffix():街、路

random_digit():0~9隨機數

random_digit_not_null():1~9的隨機數

random_element():隨機字母

random_int():隨機數字,默認0~9999,能夠經過設置min,max來設置

random_letter():隨機字母

random_number():隨機數字,參數digits設置生成的數字位數

color_name():隨機顏色名

hex_color():隨機HEX顏色

rgb_color():隨機RGB顏色

safe_color_name():隨機安全色名

safe_hex_color():隨機安全HEX顏色

bs():隨機公司服務名

company():隨機公司名(長)

company_prefix():隨機公司名(短)

company_suffix():公司性質

credit_card_expire():隨機信用卡到期日

credit_card_full():生成完整信用卡信息

credit_card_number():信用卡號

credit_card_provider():信用卡類型

credit_card_security_code():信用卡安全碼

currency_code():貨幣編碼

am_pm():AM/PM

century():隨機世紀

date():隨機日期

date_between():隨機生成指定範圍內日期,參數:start_date,end_date取值:具體日期或者today,-30d,-30y相似

date_between_dates():隨機生成指定範圍內日期,用法同上

date_object():隨機生產從1970-1-1到指定日期的隨機日期。

date_this_month():

date_this_year():

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():隨機年份

file_extension():隨機文件擴展名

file_name():隨機文件名(包含擴展名,不包含路徑)

file_path():隨機文件路徑(包含文件名,擴展名)

mime_type():隨機mime Type

ascii_company_email():隨機ASCII公司郵箱名

ascii_email():隨機ASCII郵箱

ascii_free_email():

ascii_safe_email():

company_email():

domain_name():生成域名

domain_word():域詞(即,不包含後綴)

email():

free_email():

free_email_domain():

f.safe_email():安全郵箱

f.image_url():隨機URL地址

ipv4():隨機IP4地址

ipv6():隨機IP6地址

mac_address():隨機MAC地址

tld():網址域名後綴(.com,.net.cn,等等,不包括.)

uri():隨機URI地址

uri_extension():網址文件後綴

uri_page():網址文件(不包含後綴)

uri_path():網址文件路徑(不包含文件名)

url():隨機URL地址

user_name():隨機用戶名

isbn10():隨機ISBN(10位)

isbn13():隨機ISBN(13位)

job():隨機職位

paragraph():隨機生成一個段落

paragraphs():隨機生成多個段落,經過參數nb來控制段落數,返回數組

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

first_name():

first_name_female():女性名

first_name_male():男性名

first_romanized_name():羅馬名

last_name():

last_name_female():女姓

last_name_male():男姓

last_romanized_name():

name():隨機生成全名

name_female():男性全名

name_male():女性全名

romanized_name():羅馬名

msisdn():移動臺國際用戶識別碼,即移動用戶的ISDN號碼

phone_number():隨機生成手機號

phonenumber_prefix():隨機生成手機號段

profile():隨機生成檔案信息

simple_profile():隨機生成簡單檔案信息

 
 

 

隨機生成指定類型數據:

pybool():

pydecimal():

pydict():

pyfloat():left_digits=5 #生成的整數位數,

                  right_digits=2 #生成的小數位數,

                  positive=True #是否只有正數

pyint():

pyiterable()

pylist()

pyset()

pystr()

pystruct()

pytuple()

 

ssn():生成身份證號

chrome():隨機生成Chrome的瀏覽器user_agent信息

firefox():隨機生成FireFox的瀏覽器user_agent信息

internet_explorer():隨機生成IE的瀏覽器user_agent信息

opera():隨機生成Opera的瀏覽器user_agent信息

safari():隨機生成Safari的瀏覽器user_agent信息

linux_platform_token():隨機Linux信息

user_agent():隨機user_agent信息

 

5.使用中遇到的問題

   元旦前發佈的這篇文章,因爲工做須要,元旦期間建立僞數據的過程當中,發現一個頗有意思的問題。不一樣的文化類之間,方法是偶然有區別的。

   好比,在中文(zh_CN)中的方法,district()#獲取區   province()#獲取省的方法,在有些包裏是沒有的,這須要根據所使用文化類的國家特製來。

 

 
使用日文包沒有province方法

  好比,中國的一級行政單位,是省,直轄市,自治區;而日本的一級行政單位,是都、道、府、縣。因此,日文包(ja_JP)中,就沒有相應的province(),district(),取而代之的是prefecture(),town();在美國,一級行政單位又是洲,因此,在美國英語包(en_US)中,取而代之的是state();

   總之,在使用不一樣Fake類以前,最好對所生成文化的國家信息作初步的瞭解,建議先瀏覽其對應的類文件的成員。

小禮物

做者:三胖道長 連接:https://www.jianshu.com/p/6bd6869631d9 來源:簡書 簡書著做權歸做者全部,任何形式的轉載都請聯繫做者得到受權並註明出處。
相關文章
相關標籤/搜索