python用faker庫(kù)批量生成假數(shù)據(jù)
楔子
我們平時(shí)在做測(cè)試的時(shí)候,經(jīng)常會(huì)使用一些假數(shù)據(jù),而Python中有一個(gè)包叫faker(不是打LOL的那個(gè)),專(zhuān)門(mén)用來(lái)生成假數(shù)據(jù),并且生成的假數(shù)據(jù)非常逼真,下面我們就來(lái)看一下。
faker使用方法
基本使用
faker使用起來(lái)非常簡(jiǎn)單,我們看一下就知道了。
from faker import Faker # 導(dǎo)入Faker這個(gè)類(lèi), 實(shí)例化即可 fake = Faker(locale="zh_CN") # 然后調(diào)用里面的方法即可生成相應(yīng)的假數(shù)據(jù) print(fake.name()) # 謝秀華 print(fake.address()) # 四川省莉縣白云沈陽(yáng)路o座 313522
看起來(lái)還挺逼真的,但是有一點(diǎn)需要注意,這里的地址并不是真實(shí)的地址,而是隨機(jī)組合出來(lái)的,也就是將省、市、道路之類(lèi)的隨機(jī)組合在一起。
另外我們?cè)趯?shí)例化Faker這個(gè)類(lèi)的時(shí)候,指定了locale="zh_CN",表示生成中文數(shù)據(jù),因?yàn)槟J(rèn)是英文數(shù)據(jù)。faker可以生成多個(gè)語(yǔ)言的假數(shù)據(jù),支持的語(yǔ)言如下:
- 簡(jiǎn)體中文:zh_CN
- 繁體中文:zh_TW
- 美國(guó)英文:en_US
- 英國(guó)英文:en_GB
- 德文:de_DE
- 日文:ja_JP
- 韓文:ko_KR
- 法文:fr_FR
我們舉個(gè)栗子:
from faker import Faker fake = Faker(locale="ja_JP") # 指定為日本 print(fake.name()) # 渚 あすか print(fake.address()) # 栃木県西多摩郡奧多摩町花川戸41丁目7番10號(hào) コート中宮祠994 # 指定為臺(tái)灣 fake = Faker(locale="zh_TW") print(fake.name()) # 趙美琪 print(fake.address()) # 23149 新?tīng)I(yíng)頂福州巷3段653號(hào)3樓
除了上面的name和address,faker還支持生成很多其它的數(shù)據(jù)。
地理信息類(lèi)
from faker import Faker fake = Faker(locale="zh_CN") # 1. 隨機(jī)打印一個(gè)國(guó)家, 此時(shí)跟Faker里面locale無(wú)關(guān) print(fake.country()) # 吉布提 # 2. 國(guó)家編碼, 此時(shí)跟Faker里面locale無(wú)關(guān) print(fake.country_code()) # KW # 3. 打印區(qū), 此時(shí)是中國(guó)的區(qū) print(fake.district()) # 朝陽(yáng) # 4. 打印緯度 print(fake.latitude()) # -39.076213 # 5. 打印經(jīng)度 print(fake.longitude()) # 138.988316 # 6. 打印郵編 print(fake.postcode()) # 881534 # 7. 打印省份 print(fake.province()) # 新疆維吾爾自治區(qū) # 8. 打印詳細(xì)地址 print(fake.address()) # 河北省淑英縣豐都永安街D座 260864 # 9. 打印街道地址 print(fake.street_address()) # 姜街c座 # 10. 打印街道名 print(fake.street_name()) # 海門(mén)街 # 11. 獲取市、縣 (打印的是后綴, 要么是縣、要么是市) print(fake.city_suffix()) # 市 print(fake.city_suffix()) # 縣 # 12. 打印街、路(打印的是后綴, 要么是路、要么是街) print(fake.street_suffix()) # 路 print(fake.street_suffix()) # 街
基礎(chǔ)信息類(lèi)
from faker import Faker fake = Faker(locale="zh_CN") # 1. 生成身份證號(hào) print(fake.ssn()) # 513428197105280989 # 2. 生成公司服務(wù)名 print(fake.country_code()) # HT # 3. 隨機(jī)公司名(長(zhǎng)) print(fake.company()) # 創(chuàng)聯(lián)世紀(jì)科技有限公司 # 4. 隨機(jī)公司名(短) print(fake.company_prefix()) # 信誠(chéng)致遠(yuǎn) # 5. 公司性質(zhì) print(fake.company_suffix()) # 信息有限公司 # 6. 隨機(jī)信用卡到期日 print(fake.credit_card_expire()) # 03/28 # 7. 生成完整信用卡信息 print(fake.credit_card_full()) """ xx JCB 16 digit 勇 趙 3505427828999283 12/22 CVC: 463 """ # 8. 信用卡號(hào) print(fake.credit_card_number()) # 44980244740048 # 9. 信用卡類(lèi)型 print(fake.credit_card_provider()) # Mastercard # 10. 信用卡安全碼 print(fake.credit_card_security_code()) # 581 # 11. 隨機(jī)職位 print(fake.job()) # 新媒體運(yùn)營(yíng) # 12. 女性的名 print(fake.first_name_female()) # 麗娟 # 13. 男性的名 print(fake.first_name_male()) # 彬 # 14. 女性的姓和男性的姓, 這里的姓和上面的名組合起來(lái)得到一個(gè)完整的姓名 # 說(shuō)實(shí)話(huà)個(gè)人覺(jué)得last_name_female打印姓有點(diǎn)別扭, 可能老外習(xí)慣將姓寫(xiě)在后、名字也在前 # 另外,關(guān)于姓,個(gè)人覺(jué)得其實(shí)男女沒(méi)有太大區(qū)別 print(fake.last_name_female()) # 高 print(fake.last_name_male()) # 楊 # 15. 打印全名 print(fake.name()) # 田小紅 # 16. 男性全名 print(fake.name_male()) # 朱燕 # 17. 女性全名 print(fake.name_female()) # 王凱 # 18. 隨機(jī)生成手機(jī)號(hào) print(fake.phone_number()) # 18035736881 # 19. 隨機(jī)生成手機(jī)號(hào)段 print(fake.phonenumber_prefix()) # 147
計(jì)算機(jī)基礎(chǔ)、Internet信息類(lèi)
from faker import Faker fake = Faker(locale="zh_CN") # 1. 隨機(jī)ASCII公司郵箱名 print(fake.ascii_company_email()) # minghan@jy.org # 2. 隨機(jī)ASCII郵箱 print(fake.ascii_email()) # gang38@yongcui.cn # 3. 公司郵箱 print(fake.company_email()) # xiuyinggao@guoxia.org # 4. 郵箱 print(fake.email()) # yang28@hotmail.com # 5. 安全郵箱 print(fake.safe_email()) # jieqiao@example.com
網(wǎng)絡(luò)基礎(chǔ)信息類(lèi)
from faker import Faker fake = Faker(locale="zh_CN") # 1. 生成域名 print(fake.domain_name()) # lijuan.net # 2. 域詞(即,不包含后綴) print(fake.domain_word()) # weiyang # 3. 隨機(jī)IP4地址 print(fake.ipv4()) # 12.16.224.95 # 4. 隨機(jī)IP6地址 print(fake.ipv6()) # e6b:5814:4d63:1496:9e0d:eb44:e114:722b # 5. 隨機(jī)MAC地址 print(fake.mac_address()) # 8a:1c:ce:eb:f0:5c # 6. 網(wǎng)址域名后綴(com, net, cn等等,不包括.) print(fake.tld()) # cn # 7. 隨機(jī)URI地址 print(fake.uri()) # https://na.cn/login/ # 8. 網(wǎng)址文件后綴 print(fake.uri_extension()) # .htm # 9. 網(wǎng)址文件(不包含后綴) print(fake.uri_page()) # homepage # 10. 網(wǎng)址文件路徑(不包含文件名) print(fake.uri_path()) # categories # 11. 隨機(jī)URL地址 print(fake.url()) # https://jingsong.cn/ # 12. 隨機(jī)用戶(hù)名 print(fake.user_name()) # jing13 # 13. 隨機(jī)URL地址 print(fake.image_url()) # https://dummyimage.com/109x622
瀏覽器信息類(lèi)
from faker import Faker fake = Faker(locale="zh_CN") # 1. 隨機(jī)生成Chrome的瀏覽器user_agent信息 print(fake.chrome()) # Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_7) AppleWebKit/535.0 (KHTML, like Gecko) Chrome/26.0.870.0 Safari/535.0 # 2. 隨機(jī)生成FireFox的瀏覽器user_agent信息 print(fake.firefox()) # Mozilla/5.0 (Android 3.2.2; Mobile; rv:15.0) Gecko/15.0 Firefox/15.0 # 3. 隨機(jī)生成IE的瀏覽器user_agent信息 print(fake.internet_explorer()) # Mozilla/5.0 (compatible; MSIE 8.0; Windows 98; Win 9x 4.90; Trident/3.1) # 4. 隨機(jī)生成Opera的瀏覽器user_agent信息 print(fake.opera()) # Opera/9.47.(X11; Linux i686; cv-RU) Presto/2.9.186 Version/11.00 # 5. 隨機(jī)生成Safari的瀏覽器user_agent信息 print(fake.safari()) """ Mozilla/5.0 (iPod; U; CPU iPhone OS 4_2 like Mac OS X; ne-NP) AppleWebKit/534.29.1 (KHTML, like Gecko) Version/3.0.5 Mobile/8B119 Safari/6534.29.1 """ # 6. 隨機(jī)Linux信息 print(fake.linux_platform_token()) # X11; Linux x86_64 # 7. 隨機(jī)user_agent信息 print(fake.user_agent()) # Mozilla/5.0 (Windows NT 5.0; si-LK; rv:1.9.1.20) Gecko/2017-09-23 19:50:28 Firefox/3.8
數(shù)字類(lèi)
這個(gè)意義不大,完全可以使用Python的內(nèi)置模塊,或者numpy來(lái)實(shí)現(xiàn),這里不說(shuō)了。
文本、加密類(lèi)
from faker import Faker fake = Faker(locale="zh_CN") # 1. 隨機(jī)字符串 print(fake.pystr()) # nyfOoBhwiCAYECiKOULE # 2. 隨機(jī)字母 print(fake.random_element()) # c # 3. 隨機(jī)字母 print(fake.random_letter()) # A # 4. 隨機(jī)生成一個(gè)段落 print(fake.paragraph()) # 產(chǎn)品特別為了文章.研究不同評(píng)論就是還是工程. # 5. 隨機(jī)生成多個(gè)段落 print(fake.paragraphs()) """ ['一下手機(jī)希望責(zé)任.合作空間聯(lián)系最大.', '用戶(hù)免費(fèi)中心部分就是如何男人.次數(shù)美國(guó)自己影響程序服務(wù).你的類(lèi)別歡迎日本是一.', '數(shù)據(jù)情況工作一起發(fā)展應(yīng)該自己.發(fā)展資源內(nèi)容.'] """ # 6. 隨機(jī)生成一句話(huà) print(fake.sentence()) # 更新法律學(xué)生應(yīng)用. # 7. 隨機(jī)生成多句話(huà),與段落類(lèi)似 print(fake.sentences()) # ['服務(wù)不過(guò)而且對(duì)于美國(guó)今天價(jià)格.', '發(fā)布全國(guó)語(yǔ)言帖子.', '產(chǎn)品關(guān)系問(wèn)題產(chǎn)品.'] # 8. 隨機(jī)生成一篇文章 print(fake.text()) """ 這是價(jià)格方法閱讀.發(fā)布對(duì)于經(jīng)濟(jì)地區(qū)開(kāi)發(fā)相關(guān)你們合作. 一些更新個(gè)人學(xué)生重要.什么威望網(wǎng)絡(luò)影響. 市場(chǎng)這些環(huán)境閱讀那個(gè)類(lèi)別.軟件男人怎么等級(jí)狀態(tài)日本您的. 您的閱讀地方論壇.廣告幫助位置企業(yè).以下應(yīng)用運(yùn)行主要當(dāng)前只是. 簡(jiǎn)介只要來(lái)自如果科技.那么文化進(jìn)入公司電話(huà). 名稱(chēng)威望游戲報(bào)告最新日期論壇.最大為了如何提高大學(xué).還是文件因?yàn)橄矚g語(yǔ)言.的是以及資料是否現(xiàn)在兩個(gè). """ # 9. 隨機(jī)生成詞語(yǔ) print(fake.word()) # 過(guò)程 # 10. 隨機(jī)生成多個(gè)詞語(yǔ),用法與段落,句子,類(lèi)似 print(fake.words()) # ['任何', '參加', '正在'] # 11. 隨機(jī)生成二進(jìn)制編碼 print(fake.binary()) # 非常長(zhǎng), 不打印了 # 12. 隨機(jī)生成兩位語(yǔ)言編碼 print(fake.language_code()) # ks # 13. 隨機(jī)生成語(yǔ)言/國(guó)際 信息 print(fake.locale()) # shs_CA # 14. 隨機(jī)生成MD5 print(fake.md5()) # 0df0396328281f32b1922cd82016580d # 15. 隨機(jī)生成密碼,可選參數(shù): # length:密碼長(zhǎng)度;special_chars:是否能使用特殊字符;digits:是否包含數(shù)字;upper_case:是否包含大寫(xiě)字母;lower_case:是否包含小寫(xiě)字母 print(fake.password()) # C^!5fIk!s8 # 16. 隨機(jī)SHA1 print(fake.sha1()) # e7d9fa4f3e9a25e5ab44d88971e4c56ef4cc446f # 17. 隨機(jī)SHA256 print(fake.sha256()) # 47f9163f2a72edc855ef25289c2cfcd4c213842607b4b936c12a43b477c8ed77 # 18. 隨機(jī)UUID print(fake.uuid4()) # 45dc0754-b3e3-4c94-bdcb-d20a3a8f4d9d
時(shí)間信息類(lèi)
意義也不大,有興趣可以自己了解一下。
小結(jié)
個(gè)人覺(jué)得,faker這個(gè)庫(kù)最有用的就是生成名字和地址了,其實(shí)雖然可以生成很多信息,但是常用的只有幾個(gè),需要使用的時(shí)候直接查就可以了。
以上就是python用faker庫(kù)批量生成假數(shù)據(jù)的詳細(xì)內(nèi)容,更多關(guān)于python faker庫(kù)生成假數(shù)據(jù)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python實(shí)現(xiàn)從文件中加載數(shù)據(jù)的方法詳解
日常工作中有許多類(lèi)型的文件,以及許多方法,用它們從文件中提取數(shù)據(jù)來(lái)圖形化。本文將利用Python實(shí)現(xiàn)從文件中加載數(shù)據(jù),感興趣的可以了解一下2022-04-04
python基于Pandas讀寫(xiě)MySQL數(shù)據(jù)庫(kù)
這篇文章主要介紹了python基于Pandas讀寫(xiě)MySQL數(shù)據(jù)庫(kù),幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下2021-04-04
Python之NumPy(axis=0 與axis=1)區(qū)分詳解
這篇文章主要介紹了Python之NumPy(axis=0 與axis=1)區(qū)分詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05
詳解Python+OpenCV實(shí)現(xiàn)圖像二值化
圖像二值化就是將圖像上的像素點(diǎn)的灰度值設(shè)置為0或255,也就是將整個(gè)圖像呈現(xiàn)出明顯的黑白效果的過(guò)程。本文將通過(guò)Python+OpenCV實(shí)現(xiàn)這一過(guò)程,感興趣的可以學(xué)習(xí)一下2022-05-05
python3.7環(huán)境下sanic-ext未生效踩坑解析
這篇文章主要為大家介紹了python3.7環(huán)境下sanic-ext未生效踩坑解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01
基于Python實(shí)現(xiàn)個(gè)人手機(jī)定位分析
TransBigData是一個(gè)為交通時(shí)空大數(shù)據(jù)處理、分析和可視化而開(kāi)發(fā)的Python包。本文就來(lái)用它實(shí)現(xiàn)個(gè)人手機(jī)定位分析,感興趣的小伙伴可以了解一下2023-04-04
Python繪制K線(xiàn)圖之可視化神器pyecharts的使用
這篇文章主要介紹了Python繪制K線(xiàn)圖之可視化神器pyecharts的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03

