Faker-生成假数据/测试数据

python使用Faker库进行生成模拟mock数据(基本使用+五个小案例) 神奇的Faker,神奇的数据。通过python实现数据自由 阅读详情

可以点击原文地址获取更多教程!

Faker-生成假数据/测试数据

1. 安装Faker

pip install Faker

‍可以点击原文地址获取更多教程!

2. 基本用法

Faker用于快速生成随机的假数据,并按照一定的规则或种子生成,确保生成的假数据符合要求并可以复现生成的数据。

这对用于测试、编写教程和压力检测都非常便捷。

基本步骤非常简单:

  1. 从 fakerFaker

  2. 创建一个 Fakerfake

  3. 使用这个实例的各种方法来生成不同类型的数据

from faker import Faker  # 导入Faker类

fake = Faker()  # 创建Faker实例

# 生成一些基本的假数据
print(f"姓名: {fake.name()}")
print(f"地址: {fake.address()}")
print(f"电子邮箱: {fake.email()}")
print(f"手机号: {fake.phone_number()}")
print(f"公司: {fake.company()}")
print(f"职位: {fake.job()}")

‍

3. 常用的假数据类型

‍

大类型函数名含义描述
个人信息fake.name()生成完整的个人姓名(含姓和名)
个人信息fake.first_name()生成个人的 “名”(不含姓)
个人信息fake.last_name()生成个人的 “姓”(不含名)
个人信息fake.ssn()生成符合中国格式的身份证号码(18 位)
个人信息fake.profile()生成完整的个人资料(含姓名、性别、生日、地址、邮箱等多维度信息)
联系信息fake.address()生成完整的物理地址(含省、市、区 / 县、街道、门牌号、邮编等)
联系信息fake.city()生成随机城市名称(不含省 / 自治区 / 直辖市前缀)
联系信息fake.country()生成随机国家名称
联系信息fake.postcode()生成符合中国格式的邮政编码(6 位数字)
联系信息fake.phone_number()生成符合中国格式的手机号(11 位数字,含运营商号段特征)
联系信息fake.email()生成符合格式的邮箱地址(含用户名、域名后缀)
金融商业fake.credit_card_full()生成完整信用卡信息(含卡号、有效期、CVV 码、卡组织)
金融商业fake.credit_card_number()生成纯信用卡卡号(不含有效期、CVV 等附加信息)
金融商业fake.currency()生成随机货币种类及对应金额(含货币符号 / 名称、数值)
金融商业fake.company()生成随机公司名称(含地域、行业、组织形式等元素)
金融商业fake.bs()生成模拟企业业务描述的 “BS 语句”(常用于测试文案,如 “部署跨平台服务”)
网络与科技fake.ipv4()生成符合 IPv4 协议的 IP 地址(32 位,点分十进制格式)
网络与科技fake.ipv6()生成符合 IPv6 协议的 IP 地址(128 位,冒分十六进制格式)
网络与科技fake.mac_address()生成符合格式的 MAC 地址(网络设备物理地址,冒分十六进制格式)
网络与科技fake.domain_name()生成符合格式的域名(含二级域名、顶级域名)
网络与科技fake.url()生成完整 URL(含协议、域名、路径、参数等,模拟网页 / 资源地址)
网络与科技fake.user_agent()生成模拟浏览器 / 设备的 User-Agent 字符串(用于识别客户端信息)
文本与内容fake.word()生成单个随机单词(中文 / 英文,根据 Faker 语言设置)
文本与内容fake.sentence()生成完整的随机句子(含主谓宾结构,语义通顺)
文本与内容fake.paragraph()生成段落级文本(由多个连贯句子组成,模拟短文)
文本与内容fake.text()生成长文本(由多个段落组成,模拟文章 / 文档内容)
文本与内容fake.prefix()生成姓名前缀(用于称呼,如先生、博士等)
文本与内容fake.suffix()生成姓名后缀(用于标识身份 / 辈分,如 Jr.、博士等)
日期时间fake.date_of_birth()生成合理的出生日期(通常在 18-80 岁区间,符合现实年龄逻辑)
日期时间fake.date_time()生成具体的日期时间(含年、月、日、时、分、秒,可指定时区)
日期时间fake.future_date()生成未来的日期(相对于当前时间,可指定间隔天数范围)
其他fake.color_name()生成常见的颜色名称(中文 / 英文,如红色、蓝色)
其他fake.hex_color()生成十六进制颜色码(RGB 格式,含 #前缀,如 #FF0000 代表红色)
其他fake.file_name()生成随机文件名(含文件名前缀、后缀,模拟文档 / 图片 / 视频等文件)
其他fake.file_extension()生成常见文件扩展名(不含 “.”,如 txt、pdf)

‍

4. 特定的语言和地区

Faker 支持多种语言和地区(本地化)的数据生成。默认是英语(美国)数据,但可以在创建 Faker 实例时指定所需的语言环境(locale)。

from faker import Faker

# 生成中文(中国大陆)数据
fake_zh = Faker('zh_CN')
print(fake_zh.name())  # 例如: 孙玉珍:cite[7]
print(fake_zh.address()) # 例如: 西藏自治区齐齐哈尔县合川闻街W座 928940:cite[7]
print(fake_zh.phone_number()) # 例如: 13130781068:cite[7]

# 生成日语数据
fake_ja = Faker('ja_JP')
print(fake_ja.name())

# 甚至可以同时指定多个语言环境,Faker会混合使用
fake_multi = Faker(['zh_CN', 'en_US'])
for _ in range(5):
    print(fake_multi.name())

‍
可以点击原文地址获取更多教程!

限定假数据的规则

很多时候我们希望假数据符合一定的规则,例如,12位的订单数据、以M开头的编码,或者生成一个范围内的数据,Faker 提供了多种方式来实现这一点:

使用参数控制输出

许多生成器方法接受参数来定制输出:

from faker import Faker

fake = Faker()

# 生成特定长度的文本
short_text = fake.text(max_nb_chars=50)  # 最多50个字符的文本

# 生成指定范围的数字
random_number = fake.random_int(min=0, max=100)  # 0到100之间的随机整数
random_float = fake.random_number(digits=5, fix_len=True)  # 5位数字的随机数

# 生成特定格式的日期
future_date = fake.future_date(end_date='+30d')  # 未来30天内的日期

使用 unique

在批量生成数据时,你可能需要确保某些值(如用户名、邮箱)是唯一的:

from faker import Faker

fake = Faker()

# 生成500个唯一的名字
names = [fake.unique.first_name() for i in range(500)]
print(len(set(names)))  # 确保set的长度也是500,即所有姓氏都是唯一的
'''
上述代码如果换成中文语库就会引发错误,可以猜猜原因
'''

‍

使用Faker

可以使用 Faker 的 random_element() 或 random_choices() 方法从预定义列表中进行随机选择,并通过设置种子确保选择结果的一致性。以下是具体实现方法:

random_element:选择单个元素

from faker import Faker

# 创建 Faker 实例
fake = Faker('zh_CN')

# 预定义列表
departments = ["研发部", "销售部", "市场部", "人力资源部", "财务部"]

# 设置种子确保可重复性
Faker.seed(42)

# 使用 random_element() 从列表中选择一个元素
selected_department = fake.random_element(elements=departments)
print(f"选择的部门: {selected_department}")  # 每次运行都会选择相同的部门

random_choices:选择元素的组合

from faker import Faker

fake = Faker('zh_CN')
departments = ["研发部", "销售部", "市场部", "人力资源部", "财务部"]

# 设置种子
Faker.seed(123)

# 从列表中选择多个元素
selected_departments = fake.random_choices(elements=departments, length=3)
print(f"选择的部门: {selected_departments}")  # 每次运行都会选择相同的部门组合

‍

控制随机性:使用种子(Seed)

在测试和调试时,能够重现相同的"随机"数据非常重要。Faker 允许你设置随机数生成器的种子(Seed),以确保每次运行都能生成完全相同的数据序列。

全局种子

通过 seed()

from faker import Faker

# 设置种子
Faker.seed(42)  # 可以是任意整数
fake = Faker()

# 每次运行都会生成相同的"随机"数据
print(fake.name())  # 总是得到相同的名字
print(fake.address())  # 总是得到相同的地址

‍

为特定实例设置种子

from faker import Faker

fake1 = Faker()
fake1.seed(123)  # 为这个特定实例设置种子

fake2 = Faker()
fake2.seed(456)  # 为另一个实例设置不同的种子

# fake1 总会生成相同的数据序列
# fake2 会生成另一个相同的数据序列(但与fake1不同)

‍

使用自定义Provider

如果 Faker 默认提供的数据不能满足你的特殊需求,你可以创建自定义的 Provider(提供者)来生成特定领域或格式的数据。

from faker import Faker
from faker.providers import BaseProvider

# 创建一个自定义Provider类
class MyCustomProvider(BaseProvider):
    def custom_product_id(self):
        """生成自定义产品ID"""
        prefix = self.random_letter().upper()
        number = self.random_number(digits=6)
        return f"{prefix}-{number}"
    
    def custom_status(self):
        """生成自定义状态"""
        statuses = ["pending", "processing", "completed", "cancelled"]
        return self.random_element(statuses)

# 创建Faker实例并添加自定义Provider
fake = Faker()
fake.add_provider(MyCustomProvider)

# 使用自定义Provider的方法
print(fake.custom_product_id())  # 例如: X-123456
print(fake.custom_status())      # 例如: processing

‍

使用社区提供的 Provider

除了自己创建,你还可以寻找和使用社区已经开发好的特定领域 Provider,例如:

  • ​faker-vehicle

  • ​faker-geo

  • ​faker-commerce

这些通常可以通过 pip 安装,然后像内置 Provider 一样使用。

‍
可以点击原文地址获取更多教程!
可以点击原文地址获取更多教程!
可以点击原文地址获取更多教程!

python中faker模块详解 python中的faker模块使用方法介绍、举例说明 阅读详情

相关推荐

python中生成假数据的库 faker 的详细使用,包括详细案例(生成逼真假数据)

Faker库是一个强大的Python工具,用于生成多种类型的假数据,适用于测试、开发和演示场景。它支持多语言(如中文),可生成姓名、地址、电话、日期等常见数据,也支持自定义数据提供器。通过设置种子可保证数据的可重复性。典型应用包括批量生成测试用户、订单数据、博客文章和医疗数据等。安装简单(pip install faker),API设计直观,既能满足基本需求,也能通过高级功能实现复杂数据生成。

数据知道的博客 1万+

Faker库如何生成数据

Faker库如何生成数据

m0_69761265的博客 747

.NET+Vue企业级RBAC权限平台:开箱即用的生产就绪方案

RBAC(基于角色的访问控制)是企业系统安全治理的基础模型,其核心在于将用户、角色与权限解耦,通过动态能力组合实现细粒度管控。在真实工程中,RBAC需突破静态角色限制,支持时间维度授权、前后端双重鉴权、行级数据范围控制等关键能力。本文聚焦于一套已落地金融、政务、制造等多行业的生产级实现——基于.NET Minimal API与Vue 3的前后端分离架构,提供菜单/按钮/接口/数据四层权限控制,内置滑动过期JWT、Redis权限缓存、动态路由加载与权限指令等开箱即用能力,显著降低权限配置与审计成本。

weixin_33326218的博客 275

Faker生成模拟数据并保存到数据库中

数据在项目开发过程是一个非常重要的环节,如开发系统时很多时候我们在后端建立了数据库但几乎没什么数据,这对于系统测试来说非常致命,尽管主流的数据库连接工具Navicat已经具备生成随机数据的能力,但是生成的数据基本上都是数字和字符串而已,完全没法模拟真实的数据场景。网上也有在线生成数据的工具,但也只是能简单的生成姓名,地址这些而已,且生成的数据即使能保存成文件格式,能不能存入数据库又是未解之谜。所以本期写着篇博客与大家分享一下如何使用Faker去生成一些我们想要的模拟数据一、Faker是什么?

qq_56907208的博客 2130

SIwave仿真手册——信号完整性仿真之S参数的提取(二)

上一篇简单了讲述了软件的各个操作界面,本次博客更新关于的仿真,因为第二章完整的内容比较多,所以分成好几篇博客进行分享。

luohuo9844的博客 1万+

ArcGIS | 全球新冠肺炎地图数据下载和处理

ArcGIS

thinkpang的博客 2901

Python自动化:基于faker批量生成模拟数据(以电商行业销售数据为例)

“造数据”是一个数据分析师的基本技能,“造数据”不是说胡编乱造,而是根据自己的需求去构造一些模拟数据集,用于测试等用途,而且使用虚拟数据不用担心数据隐私和安全问题。

weixin_74268817的博客 2420

Widar3.0复现日志(DFSExtractionCode)

需要使用的matlab基本功能

XiaoQiXiaoWei_J的博客 2437

Faker 假数据生成实战:从一条命令到可复现的测试数据工厂

Faker(Faker-js/faker)是一个成熟的假数据生成库:一行代码就能产出姓名、邮箱、订单、日期等真实感测试数据,Node.js 与浏览器环境通用。本文从两种安装导入方式讲起,重点覆盖固定随机序列、轻量实例与复杂对象工厂这些进阶玩法。 [![Faker 假数据生成库官方图:为开发与测试批量生成逼真的假数据](https://raw.gitcode.com/GitHub_Trending

gitblog_00807的博客 192

基于R语言的DICE模型实践技术应用;预测不同减排路径下的经济增长、碳排放量、气候变化程度以及社会福利变化

DICE模型是一个动态综合气候经济模型,由诺贝尔经济学奖得主William Nordhaus开发,用于评估气候变化对经济的影响以及不同减排政策的经济成本和效益。以下是一个关于DICE模型在气候变化影响评估中的实际应用案例,结合R语言代码进行讲解。

KY_chenzhao的博客 868

使用 MATLAB/Simulink + Simscape Electrical + Simulink Design Optimization,构建一个沙漠环境中光伏组件灰尘积累与效率下降仿真模型

本文通过,构建了沙漠环境中光伏组件灰尘积累与效率下降仿真模型✅ 建立了风速-沙尘-积尘速率的物理关系✅ 仿真了灰尘积累过程及其对Isc 和 Pmax的影响✅ 量化分析了不同清洁策略的经济性✅ 提出了优化设计与智能运维建议。

xiaoheshang_123的博客 123

如何快速掌握PHP假数据生成神器:Faker完整入门指南 [特殊字符]

在PHP开发过程中,我们经常需要大量真实感的测试数据来验证系统功能。无论是填充数据库、测试表单提交,还是模拟API响应,手动创建这些数据既耗时又容易出错。**Faker**作为一款强大的PHP假数据生成库,能够帮你轻松解决这个痛点,让假数据生成变得简单高效! ## 📚 什么是Faker?它能为你做什么? Faker是一个专为PHP开发者设计的假数据生成库,它可以快速创建各种类型的逼真假数据,

gitblog_00060的博客 854

3、基于视觉的智能分拣机:原理、算法与应用

本文介绍了一种基于视觉的智能分拣系统,利用树莓派、相机模块和多种检测算法实现低成本、高精度的物体分拣。系统支持颜色、形状和尺寸三种检测方式,准确率达99%,广泛适用于制造业、农业和物流等领域。文章详细阐述了各检测算法原理、测试结果及系统优化方向,并探讨了其实际应用案例与未来发展前景。

mqtt6iot的博客 237

如何用Java Faker生成热门影视剧数据:《老友记》、《生活大爆炸》和《绝命毒师》的终极指南

Java Faker是一个强大的Java库,专门用于生成各种类型的假数据,包括热门影视剧中的角色、地点和经典台词。这个开源工具为开发者提供了简单易用的API,能够快速生成《老友记》、《生活大爆炸》和《绝命毒师》等经典剧集的模拟数据,非常适合用于测试、演示和原型开发。 ## 📺 Java Faker影视剧数据功能概述 Java Faker库包含了丰富的影视剧数据生成功能,让你能够在项目中轻松集

gitblog_00732的博客 966

详细介绍用MATLAB实现基于A*算法的路径规划(附完整的代码,代码逐行进行解释)(一)--------A*算法简介和环境的创建

   本系列文章主要介绍基于A*算法的路径规划的实现,并使用MATLAB进行仿真演示。    一、 A*算法简介       A*(A-Star)算法是一种静态路网中求解最短路径最有效的直接搜索方法,也是解决许多搜索问题的有效算法。算法中的距离估算值与实际值越接近,最终搜索速度越快。      公式表示为: f(n)=g(n)+h(n),其中, f(n) 是从初始状态经由状态n到目标状态的代价估计,g(n) 是在状态空间中从初始状态到状态n的实际代价,h(n) 是从状态n到目标状态的最佳路径的估计代价。

慕羽★的博客 7万+

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

fake2db与Faker集成:如何生成逼真的多语言测试数据

在软件开发和测试过程中,高质量的测试数据是确保应用程序稳定性和可靠性的关键。fake2db是一款强大的测试数据生成工具,能够与Faker库无缝集成,帮助开发者快速创建填充有逼真假数据的自定义测试数据库。本文将详细介绍如何利用fake2db与Faker的集成功能,生成支持多语言的测试数据,满足不同地区和语言环境的测试需求。 ## 什么是fake2db? fake2db是一个开源的命令行工具,旨在

gitblog_00069的博客 695

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

波斯语文本直接输入:Persian-IPA-to-Speech-F5的PersianTextToIPA ByT5前端实战详解

**Persian-IPA-to-Speech-F5** 是一个基于 F5-TTS 的波斯语(Persian/Farsi)文本转语音 Python API。它的亮点在于内置的 **PersianTextToIPA** 前端模块:用 ByT5 模型把普通波斯语文本自动转成 IPA 国际音标,再交给 TTS 模型合成语音——你不再需要手工标注音标,直接输入波斯语原文即可发声。🎙️ ## 项目整体架

gitblog_00325的博客 238

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

从BF16到W8A8C8:GLM-4.7量化全流程原理,模型精度、速度与显存权衡终极指南

如果你正在部署 GLM-4.7 大模型,**W8A8C8 量化**一定是绕不开的话题。GLM-4.7-W8A8C8 是一个已完成量化推理适配的 MoE(混合专家)模型仓库,它把模型权重(W)、激活值(A)和 KV Cache(C)统一压缩到 int8 精度,在几乎不损失生成质量的前提下,把显存占用砍掉约一半、让推理吞吐明显提升。本文将带你彻底搞懂:W8A8C8 是什么意思、量化流程如何一步步执行、

gitblog_00633的博客 639

RT-Thread STM32 Nucleo-144 BSP 开发指南:板卡资源、MDK5 快速上手与 ENV 高级外设配置

本文是 RT-Thread 开源仓库中 [STM32_Nucleo-144_BSP_Introduction.md](https://link.gitcode.com/i/848de140c7e61fd458b3d18c0b8f452d) 的完整技术指南。该 BSP(板级支持包)由 RT-Thread 开发团队为 STM32 Nucleo-144 系列开发板提供,覆盖板卡资源介绍、MDK/IAR/

gitblog_00977的博客 320

ViVeTool 完整指南:用 7 条命令快速管理 Windows 隐藏功能开关

ViVeTool 是一款开源 C# 命令行工具,用于对 Windows 进行功能管理:它调用微软官方的功能开关接口,控制系统中隐藏功能与实验性功能的状态。本指南面向首次使用它的用户,覆盖运行环境准备、全部命令的用法、典型任务与回退方法。 ## ViVeTool 命令能力总览:一条命令对应一类操作 在执行任何操作前,先了解 7 条命令各自负责什么。ViVeTool 的每个命令都对应一个明确的功能

gitblog_00412的博客 316

AI小说生成工具AI_NovelGenerator:3个机制让长篇连载不断线

写到第30章才发现,主角断掉的左手在第7章就已经养好了——长篇创作最贵的成本不是文笔,是记忆。AI_NovelGenerator是一款AI小说生成工具,它的思路不是替你写故事,而是给AI搭一套"记笔记、查档案"的流程,让几百章的连载写得下去、对得上。 ## 把不同工序分给不同模型,为什么比一个模型全包更稳 最常见的做法是配一个大模型跑完所有环节。这个项目在配置里做了任务路由:世界观架构、章节大

gitblog_01066的博客 144

Faker:Python中的假数据生成利器

Faker:Python中的假数据生成利器 项目介绍 Faker 是一个用于生成假数据的Python库,旨在帮助开发者快速生成各种类型的模拟数据。无论是用于测试、开发还是演示,Faker都能提供丰富且逼真的数据,让你的项目更加真实和完整。 项目技术分析 Faker的核心功能是通过Python代码生成各种类型的假数据,包括但不限于姓名、用户名、电子邮件、电话号码、地址和公司名称等。其设计灵感来源于P...

gitblog_00656的博客 839

使用Faker库生成测试数据的完整指南

Faker是一个Python包,用于生成假数据。它可以创建各种类型的随机但看似合理的数据,特别适合以下场景:测试应用程序数据库填充匿名化生产数据创建演示或示例数据。

m0_66197486的博客 945

测试数据生成利器之Python_Faker

Faker是一个Python库,用于生成各种随机数据,如姓名、地址、电子邮件、文本、数字等。它被广泛用于测试、填充数据库、生成假数据等场景。Faker可以帮助开发人员快速生成各种类型的假数据,而无需自己手动创建。1. 以下是Faker库的一些主要特点和用法生成各种类型的假数据:Faker库提供了多种数据生成器,可以生成姓名、地址、电子邮件、文本、数字、日期等各种类型的随机数据。多语言支持:Faker库支持多种语言,可以生成不同语言的假数据,如英文、中文、法文等。

2401_86343726的博客 723

20行代码扩展Faker:用RegisterProvider打造你自己的假数据生成器

**faker** 是一个专为 Go 语言打造的终极假数据生成器(fake data generator),零外部依赖即可生成姓名、地址、邮箱等海量测试数据。当内置生成器不够用时,你只需通过 `RegisterProvider` 注册一个自定义函数,约 20 行代码就能打造专属的假数据生成器,让测试数据完全贴合你的业务场景。 [![Faker Go假数据生成器项目封面](https://raw.

gitblog_01062的博客 1057

Faker库:生成测试数据

在做程序开发的时候,我们经常会用到一些测试数据.在 Python 中有个神库,叫做 Faker,它可以自动帮我们来生成各种各样的看起来很真的”假“数据,让我们来看看吧! 安装 首先让我们来看看这个库的安装方法,实际上装起来非常简单,使用 pip 安装即可,Python3 版本的安装命令如下: pip3 install faker 安装好了之后,我们使用最简单的例子来生成几个假数据试试: from faker import Faker faker = Faker() print('name:', fake

Smilecoc的博客 4565
上一篇: VBA-原地取消公式
mxsleon
博客等级 码龄3年 88粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值