最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2025年04月24日 10:30:25   作者:花小姐的春天  
Faker?是?Python?里的一個(gè)第三方庫(kù),專門用來(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ù),專門用來(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)用它的各種方法 生成不同類型的數(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ū)域銷售經(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 可以生成哪些類型的數(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:time模塊用法

    詳解python:time模塊用法

    這篇文章主要介紹了python:time模塊用法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • python中函數(shù)的返回值及類型詳解

    python中函數(shù)的返回值及類型詳解

    這篇文章主要為大家介紹了python中函數(shù)的返回值及類型詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • 在pycharm創(chuàng)建scrapy項(xiàng)目的實(shí)現(xiàn)步驟

    在pycharm創(chuàng)建scrapy項(xiàng)目的實(shí)現(xiàn)步驟

    這篇文章主要介紹了在pycharm創(chuàng)建scrapy項(xiàng)目的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • 對(duì)Pandas DataFrame缺失值的查找與填充示例講解

    對(duì)Pandas DataFrame缺失值的查找與填充示例講解

    今天小編就為大家分享一篇對(duì)Pandas DataFrame缺失值的查找與填充示例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-11-11
  • Python編程實(shí)現(xiàn)二叉樹(shù)及七種遍歷方法詳解

    Python編程實(shí)現(xiàn)二叉樹(shù)及七種遍歷方法詳解

    這篇文章主要介紹了Python編程實(shí)現(xiàn)二叉樹(shù)及七種遍歷方法,結(jié)合實(shí)例形式詳細(xì)分析了Python二叉樹(shù)的定義及常用遍歷操作技巧,需要的朋友可以參考下
    2017-06-06
  • Python使用textract實(shí)現(xiàn)從各種文件中提取文本信息

    Python使用textract實(shí)現(xiàn)從各種文件中提取文本信息

    textract是一個(gè)強(qiáng)大的Python庫(kù),可以用于從各種文件格式中提取文本,本文將介紹textract的使用場(chǎng)景,以及一些常用的Python代碼案例,希望對(duì)大家有所幫助
    2024-01-01
  • Python‘==‘ 及 ‘is‘相關(guān)原理解析

    Python‘==‘ 及 ‘is‘相關(guān)原理解析

    這篇文章主要介紹了Python‘==‘ 及 ‘is‘相關(guān)原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • keras的siamese(孿生網(wǎng)絡(luò))實(shí)現(xiàn)案例

    keras的siamese(孿生網(wǎng)絡(luò))實(shí)現(xiàn)案例

    這篇文章主要介紹了keras的siamese(孿生網(wǎng)絡(luò))實(shí)現(xiàn)案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-06-06
  • pygame游戲之旅 創(chuàng)建游戲窗口界面

    pygame游戲之旅 創(chuàng)建游戲窗口界面

    這篇文章主要為大家詳細(xì)介紹了pygame游戲之旅,教大家如何創(chuàng)建游戲窗口界面,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • 對(duì)python自動(dòng)生成接口測(cè)試的示例講解

    對(duì)python自動(dòng)生成接口測(cè)試的示例講解

    今天小編就為大家分享一篇對(duì)python自動(dòng)生成接口測(cè)試的示例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-11-11

最新評(píng)論

叙永县| 蓬安县| 临猗县| 肇州县| 乌兰浩特市| 南投市| 河源市| 中方县| 徐州市| 建瓯市| 镶黄旗| 修武县| 集贤县| 舒城县| 江都市| 平塘县| 漳州市| 云霄县| 安徽省| 尉犁县| 宁化县| 鸡西市| 紫金县| 青田县| 怀宁县| 宣汉县| 夹江县| 保亭| 宁安市| 江西省| 金溪县| 宝应县| 安西县| 韩城市| 西充县| 济源市| 新干县| 广安市| 元朗区| 灵宝市| 武乡县|