欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

前言

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

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

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

結(jié)果老板補了一句:“要真實點的,比如姓名、地址、手機號、郵箱那種。”

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

  • 姓名?我得找個姓氏 + 名字的列表拼接?
  • 地址?手寫全國地名?
  • 手機號?光頭腦袋都要想禿了!

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

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

Faker:Python的“造假專家”

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

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

安裝 Faker

安裝Faker比安裝游戲還簡單

用 pip 安裝它,簡單到不行:

pip install faker

然后,在 Python 里試試看:

from faker import Faker

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

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

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

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

Faker的核心用法

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

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

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

from faker import Faker

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

運行結(jié)果:

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

Faker 支持 90+ 種語言 常見的 Faker 語言代碼如下:

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

如果你想查看 Faker 完整的語言列表,可以運行:

from faker.config import AVAILABLE_LOCALES
print(AVAILABLE_LOCALES)

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

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

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

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

運行結(jié)果:

王芳 wang.fang@example.com 軟件工程師
小強 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,那該怎么做呢?往下看

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

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

這時候,我們可以用 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=["姓名", "郵箱", "手機號", "公司", "職位"])

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

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

代碼解讀:

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

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

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

方法 1:簡單接口數(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 個用戶),可以用 列表解析 生成 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": "蘇建國",
        "email": "maqiang@example.org",
        "phone": "15895021634",
        "company": "天開傳媒有限公司",
        "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ū)域銷售經(jīng)理",
        "created_at": "2025-03-27T05:20:20"
    },
    …… 此處省略8條數(shù)據(jù)
]

方法 3:使用 Flask 搭建一個 Mock API

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

from flask import Flask, jsonify
from faker import Faker

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

# 定義一個 API 端點
@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)

運行后,訪問:

http://127.0.0.1:5000/api/users

返回 JSON 響應(yīng)

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

容易被忽略的 Faker 小技巧

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

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

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

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

from faker import Faker

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

相關(guān)文章

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

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

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

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

    sqlparse?是一個?Python?第三方庫,專門用于解析和格式化?SQL?語句,它提供了強大的?SQL?解析功能,下面小編就來為大家詳細(xì)介紹一下它的具體使用吧
    2025-02-02
  • python實現(xiàn)21點小游戲

    python實現(xiàn)21點小游戲

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

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

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

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

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

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

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

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

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

    教你用Python下載抖音無水印視頻

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

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

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

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

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

最新評論