亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python使用Faker庫(kù)實(shí)現(xiàn)數(shù)據(jù)生成的示例詳解

 更新時(shí)間:2025年04月24日 10:30:25   作者:花小姐的春天  
Faker?是?Python?里的一個(gè)第三方庫(kù),專門(mén)用來(lái)?生成假數(shù)據(jù),不管你要姓名,手機(jī)號(hào)還是地址都能輕松實(shí)現(xiàn),下面就跟隨小編一起來(lái)深入了解下Faker庫(kù)的具體使用吧

前言

老板說(shuō)要“假數(shù)據(jù)”,我真的慌了!

前幾天,老板突然甩給我一個(gè)需求:“咱們數(shù)據(jù)庫(kù)里數(shù)據(jù)太少,先搞點(diǎn)測(cè)試數(shù)據(jù)看看效果。”

我心想,這還不簡(jiǎn)單?隨便寫(xiě)個(gè)for循環(huán),random.randint()往里一丟,不就完事了?

結(jié)果老板補(bǔ)了一句:“要真實(shí)點(diǎn)的,比如姓名、地址、手機(jī)號(hào)、郵箱那種。”

這時(shí)候,我的大腦已經(jīng)在瘋狂計(jì)算:

  • 姓名?我得找個(gè)姓氏 + 名字的列表拼接?
  • 地址?手寫(xiě)全國(guó)地名?
  • 手機(jī)號(hào)?光頭腦袋都要想禿了!

就在我以為要手動(dòng)編寫(xiě)一萬(wàn)個(gè)假數(shù)據(jù),熬夜到禿頭的時(shí)候,我發(fā)現(xiàn)了 Faker 這個(gè)神奇的庫(kù)。

朋友們,假數(shù)據(jù)生成,我們程序員才是專業(yè)的! 

Faker:Python的“造假專家”

Faker 是 Python 里的一個(gè)第三方庫(kù),專門(mén)用來(lái) 生成假數(shù)據(jù)。不管你要姓名、手機(jī)號(hào)、郵箱,還是地址、公司名、銀行卡號(hào),它都能輕松生成!

你甚至可以用它生成一份“假簡(jiǎn)歷”,完美應(yīng)付“我有五年工作經(jīng)驗(yàn)”的尷尬問(wèn)題(當(dāng)然,咱們做人要誠(chéng)信,別真的造假哦)。

安裝 Faker

安裝Faker比安裝游戲還簡(jiǎn)單

用 pip 安裝它,簡(jiǎn)單到不行:

pip install faker

然后,在 Python 里試試看:

from faker import Faker

fake = Faker()
print(fake.name())  # 隨機(jī)生成一個(gè)名字
print(fake.address())  # 隨機(jī)生成一個(gè)地址
print(fake.email())  # 隨機(jī)生成一個(gè)郵箱

運(yùn)行結(jié)果可能是:

Michael Johnson
1234 Elm Street, Springfield, IL 62704
michael.johnson@example.com

怎么樣,效果還不錯(cuò)吧?這名字聽(tīng)著就像個(gè)正經(jīng)人 

Faker的核心用法

Faker 的用法很簡(jiǎn)單,核心思路就是 創(chuàng)建一個(gè) Faker 實(shí)例,然后調(diào)用它的各種方法 生成不同類(lèi)型的數(shù)據(jù)。

1. 生成不同語(yǔ)言的假數(shù)據(jù)

默認(rèn)情況下,Faker 生成的是英文數(shù)據(jù),如果要生成中文數(shù)據(jù),可以加個(gè) "zh_CN"

from faker import Faker

fake = Faker("zh_CN")
print(fake.name())  # 隨機(jī)生成一個(gè)名字
print(fake.address())  # 隨機(jī)生成一個(gè)地址
print(fake.email())  # 隨機(jī)生成一個(gè)郵箱

運(yùn)行結(jié)果:

趙建軍
廣西壯族自治區(qū)琴市懷柔貴陽(yáng)路C座 684728
guiying80@example.com

Faker 支持 90+ 種語(yǔ)言 常見(jiàn)的 Faker 語(yǔ)言代碼如下:

語(yǔ)言代碼語(yǔ)言代碼
中文(中國(guó))zh_CN英文(美國(guó))en_US
英文(英國(guó))en_GB日語(yǔ)ja_JP
韓語(yǔ)ko_KR法語(yǔ)(法國(guó))fr_FR
德語(yǔ)(德國(guó))de_DE俄語(yǔ)ru_RU
西班牙語(yǔ)(西班牙)es_ES意大利語(yǔ)it_IT
葡萄牙語(yǔ)(巴西)pt_BR荷蘭語(yǔ)nl_NL
印度語(yǔ)hi_IN阿拉伯語(yǔ)ar_EG

如果你想查看 Faker 完整的語(yǔ)言列表,可以運(yùn)行:

from faker.config import AVAILABLE_LOCALES
print(AVAILABLE_LOCALES)

這樣就能看到所有 Faker 支持的語(yǔ)言代碼 了!

2. 批量生成 N 條假數(shù)據(jù)

如果你要一次生成 1000 條數(shù)據(jù),總不能手動(dòng)調(diào)用 1000 次吧?這時(shí)候,for 循環(huán)派上用場(chǎng)了!

for _ in range(5):  # 生成5條數(shù)據(jù)
    print(fake.name(), fake.email(), fake.job())

運(yùn)行結(jié)果:

王芳 wang.fang@example.com 軟件工程師
小強(qiáng) liqiang@example.com 數(shù)據(jù)分析師
張偉 zhangwei@example.com 網(wǎng)絡(luò)安全專家
劉娜 liuna@example.com 人力資源經(jīng)理
趙磊 zhaolei@example.com 產(chǎn)品經(jīng)理

如果你要生成 一整張表的數(shù)據(jù),比如導(dǎo)出到 Excel,那該怎么做呢?往下看

實(shí)戰(zhàn)1:生成測(cè)試數(shù)據(jù)并導(dǎo)出 Excel

假設(shè)我們要生成一份 1000 條用戶信息的 Excel 表,包含 姓名、郵箱、手機(jī)號(hào)、公司、職位

這時(shí)候,我們可以用 Faker + pandas,輕松完成導(dǎo)出 Excel 的任務(wù)!

代碼示例

import pandas as pd
from faker import Faker

fake = Faker("zh_CN")

# 生成 1000 條假數(shù)據(jù)
data = []
for _ in range(1000):
    data.append([
        fake.name(),
        fake.email(),
        fake.phone_number(),
        fake.company(),
        fake.job()
    ])

# 用 pandas 創(chuàng)建 DataFrame
df = pd.DataFrame(data, columns=["姓名", "郵箱", "手機(jī)號(hào)", "公司", "職位"])

# 保存到 Excel
df.to_excel("fake_users.xlsx", index=False)

print("Excel 生成完畢,快去看看吧!??")

代碼解讀:

  • fake.name() 生成中文姓名
  • fake.email() 生成郵箱
  • fake.phone_number() 生成手機(jī)號(hào)
  • fake.company() 生成公司名
  • fake.job() 生成職位
  • 最后用 pandas 存入 Excel,這樣就可以輕松導(dǎo)出一份假數(shù)據(jù)表格!

實(shí)戰(zhàn)2:模擬 API 接口返回的數(shù)據(jù)

如果你想用 Faker 生成 模擬 API 接口返回的數(shù)據(jù),可以使用 jsondict 結(jié)構(gòu),然后格式化輸出。下面介紹幾種常見(jiàn)的方法:

方法 1:簡(jiǎn)單接口數(shù)據(jù)(JSON 格式)

import json
from faker import Faker

fake = Faker("zh_CN")  # 生成中文數(shù)據(jù)

# 生成一條用戶數(shù)據(jù)
data = {
    "user_id": fake.uuid4(),
    "name": fake.name(),
    "email": fake.email(),
    "phone": fake.phone_number(),
    "address": fake.address(),
    "company": fake.company(),
    "job": fake.job(),
    "created_at": fake.date_time_this_year().isoformat(),
}

# 轉(zhuǎn)換成 JSON 格式輸出
print(json.dumps(data, indent=4, ensure_ascii=False))

示例輸出(JSON 數(shù)據(jù)):

{
    "user_id": "f0da2b7b-1159-4f90-800c-6ed59be66523",
    "name": "黃海燕",
    "email": "yqiao@example.org",
    "phone": "13648640903",
    "address": "青海省楊縣龍?zhí)豆枮I街R座 713788",
    "company": "恒聰百匯傳媒有限公司",
    "job": "煉膠工",
    "created_at": "2025-01-19T22:03:55"
}

方法 2:批量生成接口數(shù)據(jù)

如果需要 一次性生成多條數(shù)據(jù)(比如 10 個(gè)用戶),可以用 列表解析 生成 JSON 數(shù)組:

data_list = [
    {
        "user_id": fake.uuid4(),
        "name": fake.name(),
        "email": fake.email(),
        "phone": fake.phone_number(),
        "company": fake.company(),
        "job": fake.job(),
        "created_at": fake.date_time_this_year().isoformat(),
    }
    for _ in range(10)  # 生成 10 條數(shù)據(jù)
]

# 轉(zhuǎn)換成 JSON 格式輸出
print(json.dumps(data_list, indent=4, ensure_ascii=False))

示例輸出(JSON 數(shù)組):

[    
    {
        "user_id": "ac9c9caa-2134-437e-beb6-ebc334d90ae1",
        "name": "蘇建國(guó)",
        "email": "maqiang@example.org",
        "phone": "15895021634",
        "company": "天開(kāi)傳媒有限公司",
        "job": "管家部經(jīng)理/主管",
        "created_at": "2025-03-06T05:23:05"
    },
    {
        "user_id": "6525642b-d7e5-4299-a3d9-1cee60cbfd4c",
        "name": "馮晶",
        "email": "li54@example.com",
        "phone": "13896607243",
        "company": "九方科技有限公司",
        "job": "區(qū)域銷(xiāo)售經(jīng)理",
        "created_at": "2025-03-27T05:20:20"
    },
    …… 此處省略8條數(shù)據(jù)
]

方法 3:使用 Flask 搭建一個(gè) Mock API

如果你想讓前端可以直接訪問(wèn) http://127.0.0.1:5000/api/users 來(lái)獲取假數(shù)據(jù),可以結(jié)合 Flask 搭建一個(gè)本地 API 接口:

from flask import Flask, jsonify
from faker import Faker

app = Flask(__name__)
fake = Faker("zh_CN")

# 定義一個(gè) API 端點(diǎn)
@app.route("/api/users", methods=["GET"])
def get_users():
    users = [
        {
            "user_id": fake.uuid4(),
            "name": fake.name(),
            "email": fake.email(),
            "phone": fake.phone_number(),
            "company": fake.company(),
            "job": fake.job(),
            "created_at": fake.date_time_this_year().isoformat(),
        }
        for _ in range(2)  # 生成 2 條數(shù)據(jù)
    ]
    return jsonify(users)

if __name__ == "__main__":
    app.run(debug=True)

運(yùn)行后,訪問(wèn):

http://127.0.0.1:5000/api/users

返回 JSON 響應(yīng)

這樣,你就有了一個(gè)可以模擬 API 接口的本地服務(wù)適用于前端調(diào)用、測(cè)試 API 數(shù)據(jù)。

容易被忽略的 Faker 小技巧

1. Faker 還能生成信用卡、IP 地址!

print(fake.ssn())  # 生成隨機(jī)身份證號(hào)
print(fake.credit_card_number())  # 生成信用卡號(hào)
print(fake.ipv4())  # 生成 IPv4 地址

2. Faker可以模擬哪些數(shù)據(jù)

如果你想查看 Faker 可以生成哪些類(lèi)型的數(shù)據(jù),可以使用以下方法:

from faker import Faker

fake = Faker()
print(dir(fake))  # 查看所有可用的方法

3. 讓假數(shù)據(jù)“可復(fù)現(xiàn)”

有時(shí)候,我們希望生成的假數(shù)據(jù) 每次都一樣(比如寫(xiě)測(cè)試用例時(shí))。這時(shí)候,可以用 seed() 方法:

fake.seed_instance(42)  # 設(shè)置種子
print(fake.name())  # 這次和下次運(yùn)行都會(huì)是同一個(gè)名字

4. 生成定制格式的數(shù)據(jù)

你是不是以為 Faker 只能生成那些官方定義好的字段?其實(shí),它還能按 自定義格式 生成數(shù)據(jù)!

fake.seed_instance(42)  # 設(shè)置種子
print(fake.name())  # 這次和下次運(yùn)行都會(huì)是同一個(gè)名字

5. 生成 “看起來(lái)更真實(shí)” 的數(shù)據(jù)

有時(shí)候,默認(rèn)的 name()、address() 生成的數(shù)據(jù)雖然隨機(jī),但不夠真實(shí)。你可以指定某些值更常見(jiàn)!

# 讓特定公司名更常見(jiàn)
company_list = ["阿里巴巴", "騰訊", "華為", "百度", "字節(jié)跳動(dòng)"]
print(fake.random_element(company_list))  # 隨機(jī)公司

# 指定某些姓氏更常見(jiàn)
last_names = ["張", "王", "李", "趙", "劉"]
print(fake.last_name() + fake.first_name())  # 更真實(shí)的姓名

6. 生成唯一 & 不重復(fù)數(shù)據(jù)

Faker 可能會(huì)生成重復(fù)的數(shù)據(jù)?不怕,我們有 unique 這個(gè)大招

print(fake.unique.email())  # 生成不重復(fù)的 email
print(fake.unique.name())   # 生成不重復(fù)的姓名
  • fake.unique.xxx() 讓 Faker 確保不會(huì)重復(fù)
  • 避免數(shù)據(jù)庫(kù)主鍵重復(fù),特別適合批量造數(shù)據(jù)

到此這篇關(guān)于Python使用Faker庫(kù)實(shí)現(xiàn)數(shù)據(jù)生成的示例詳解的文章就介紹到這了,更多相關(guān)Python Faker生成數(shù)據(jù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python中的eval()函數(shù)使用詳解

    Python中的eval()函數(shù)使用詳解

    這篇文章主要介紹了Python中的eval()函數(shù)使用詳解,eval()函數(shù)是用來(lái)執(zhí)行一個(gè)字符串表達(dá)式,并返回表達(dá)式的值,可以把字符串轉(zhuǎn)化為list,dict ,tuple,需要的朋友可以參考下
    2023-12-12
  • 一文教你Python如何使用sqlparse玩轉(zhuǎn)SQL解析

    一文教你Python如何使用sqlparse玩轉(zhuǎn)SQL解析

    sqlparse?是一個(gè)?Python?第三方庫(kù),專門(mén)用于解析和格式化?SQL?語(yǔ)句,它提供了強(qiáng)大的?SQL?解析功能,下面小編就來(lái)為大家詳細(xì)介紹一下它的具體使用吧
    2025-02-02
  • python實(shí)現(xiàn)21點(diǎn)小游戲

    python實(shí)現(xiàn)21點(diǎn)小游戲

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)21點(diǎn)小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • 淺談Python的Django框架中的緩存控制

    淺談Python的Django框架中的緩存控制

    這篇文章主要介紹了Python的Django框架中的緩存控制,包括Vary頭部以外的其他頭部使用等,需要的朋友可以參考下
    2015-07-07
  • python實(shí)現(xiàn)數(shù)學(xué)模型(插值、擬合和微分方程)

    python實(shí)現(xiàn)數(shù)學(xué)模型(插值、擬合和微分方程)

    這篇文章主要介紹了python實(shí)現(xiàn)數(shù)學(xué)模型(插值、擬合和微分方程),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11
  • Python還能這么玩之用Python做個(gè)小游戲的外掛

    Python還能這么玩之用Python做個(gè)小游戲的外掛

    玩過(guò)電腦游戲的同學(xué)對(duì)于外掛肯定不陌生,但是你在用外掛的時(shí)候有沒(méi)有想過(guò)外掛怎么制作出來(lái)的呢?現(xiàn)在來(lái)看一下怎么制作一個(gè)外掛,首先說(shuō)下,這里的游戲外掛的概念,和那些大型網(wǎng)游里的外掛可不同,不能自動(dòng)打怪,主要為了提高一下編程技術(shù),需要的朋友可以參考下
    2021-06-06
  • pyqt5 從本地選擇圖片 并顯示在label上的實(shí)例

    pyqt5 從本地選擇圖片 并顯示在label上的實(shí)例

    今天小編就為大家分享一篇pyqt5 從本地選擇圖片 并顯示在label上的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-06-06
  • 教你用Python下載抖音無(wú)水印視頻

    教你用Python下載抖音無(wú)水印視頻

    這篇文章主要介紹了教你用Python下載抖音無(wú)水印視頻,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python的小伙伴們有很好地幫助,需要的朋友可以參考下
    2021-05-05
  • Python qqbot 實(shí)現(xiàn)qq機(jī)器人的示例代碼

    Python qqbot 實(shí)現(xiàn)qq機(jī)器人的示例代碼

    這篇文章主要介紹了Python qqbot 實(shí)現(xiàn)qq機(jī)器人的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Python使用Selenium執(zhí)行JavaScript代碼的步驟詳解

    Python使用Selenium執(zhí)行JavaScript代碼的步驟詳解

    Selenium是一個(gè)用于自動(dòng)化瀏覽器操作的工具,可以模擬人工操作,執(zhí)行各種瀏覽器操作,而JavaScript是一種常用的腳本語(yǔ)言,本文將介紹如何在Python中使用Selenium執(zhí)行JavaScript代碼,并給出一些常見(jiàn)的應(yīng)用示例
    2023-11-11

最新評(píng)論