【Python】faker模块_生成假数据

官方文档 zh_CN

安装

pip install faker

引用

from faker import Faker

使用

# coding:utf-8
from faker import Faker
if __name__=="__main__":
# 实例化Faker (默认英文)
fake = Faker()
print(fake.name())

常见语言

简体中文:zh_CN
繁体中文:zh_TW
美国英文:en_US
英国英文:en_GB
德文:de_DE
日文:ja_JP
韩文:ko_KR
法文:fr_FR

示例

# coding:utf-8
from faker import Faker
if __name__=="__main__":
# 实例化Faker (默认英文)
fake = Faker('zh_CN')
print(fake.name())

查看faker内置对象

fake.providers

result

[<faker.providers.user_agent.Provider object at 0x059FF130>,
<faker.providers.ssn.zh_CN.Provider object at 0x059B7F70>,
<faker.providers.python.Provider object at 0x059B7FE8>,
<faker.providers.profile.Provider object at 0x059B7FA0>,
<faker.providers.phone_number.zh_CN.Provider object at 0x059B7E08>,
<faker.providers.person.zh_CN.Provider object at 0x059B7DC0>,
<faker.providers.misc.en_US.Provider object at 0x059B7C88>,
<faker.providers.lorem.zh_CN.Provider object at 0x059B7CD0>,
<faker.providers.job.zh_CN.Provider object at 0x059B7AC0>,
<faker.providers.isbn.Provider object at 0x059B7B80>,
<faker.providers.internet.zh_CN.Provider object at 0x059B7B08>,
<faker.providers.geo.en_US.Provider object at 0x059B7A18>,
<faker.providers.file.Provider object at 0x059B7898>,
<faker.providers.date_time.zh_CN.Provider object at 0x059B7928>,
<faker.providers.currency.en_US.Provider object at 0x059B7700>,
<faker.providers.credit_card.en_US.Provider object at 0x059B7418>,
<faker.providers.company.zh_CN.Provider object at 0x059B7790>,
<faker.providers.color.en_US.Provider object at 0x059B7508>,
<faker.providers.barcode.en_US.Provider object at 0x059B7448>,
<faker.providers.bank.en_GB.Provider object at 0x059B74C0>,
<faker.providers.automotive.en_US.Provider object at 0x00D19E08>,
<faker.providers.address.zh_CN.Provider object at 0x059B7328>]

常用方法

person 人物类:性别、姓名等

fake.name() # 姓名
fake.last_name() # 姓
fake.first_name() # 名
fake.name_male() # 男性姓名
fake.name_female() # 女性姓名

address 地址

fake.country() # 国家
fake.city() # 城市
fake.city_suffix() # 城市的后缀,中文是:市或县
fake.address() # 地址
fake.street_address() # 街道
fake.street_name() # 街道名
fake.postcode() # 邮编
fake.latitude() # 维度
fake.longitude() # 经度

company 公司类:公司名、email、公司名前缀等

fake.company() # 公司名
fake.company_suffix() # 公司名后缀

color 颜色类

fake.hex_color() # 16进制表示的颜色
fake.rgb_css_color() # css用的rgb色
fake.rgb_color() # 表示rgb色的字符串
fake.color_name() # 颜色名字
fake.safe_hex_color() #安全16进制色
fake.safe_color_name() # 安全颜色名字

credit_card 银行卡类:卡号、有效期、类型等

fake.credit_card_number(card_type=None) # 卡号
fake.credit_card_provider(card_type=None) # 卡的提供者
fake.credit_card_security_code(card_type=None)# 卡的安全密码
fake.credit_card_expire() # 卡的有效期
fake.credit_card_full(card_type=None) # 完整卡信息

date_time 时间日期类:日期、年、月等

fake.date_time(tzinfo=None) # 随机日期时间
fake.iso8601(tzinfo=None) # 以iso8601标准输出的日期
fake.date_time_this_month(before_now=True, after_now=False, tzinfo=None) # 本月的某个日期
fake.date_time_this_year(before_now=True, after_now=False, tzinfo=None) # 本年的某个日期
fake.date_time_this_decade(before_now=True, after_now=False, tzinfo=None) # 本年代内的一个日期
fake.date_time_this_century(before_now=True, after_now=False, tzinfo=None) # 本世纪一个日期
fake.date_time_between(start_date="-30y", end_date="now", tzinfo=None) # 两个时间间的一个随机时间
fake.timezone() # 时区
fake.time(pattern="%H:%M:%S") # 时间(可自定义格式)
fake.am_pm() # 随机上午下午
fake.month() # 随机月份
fake.month_name() # 随机月份名字
fake.year() # 随机年
fake.day_of_week() # 随机星期几
fake.day_of_month() # 随机月中某一天
fake.time_delta() # 随机时间延迟
fake.date_object() # 随机日期对象
fake.time_object() # 随机时间对象
fake.unix_time() # 随机unix时间(时间戳)
fake.date(pattern="%Y-%m-%d") # 随机日期(可自定义格式)
fake.date_time_ad(tzinfo=None) # 公元后随机日期

file 文件类:文件名、文件类型、文件扩展名等

fake.file_name(category="image", extension="png") # 文件名(指定文件类型和后缀名)
fake.file_name() # 随机生成各类型文件
fake.file_extension(category=None) # 文件后缀
fake.mime_type(category=None) # mime-type

internet 互联网类

fake.ipv4(network=False) # ipv4地址
fake.ipv6(network=False) # ipv6地址
fake.uri_path(deep=None) # uri路径
fake.uri_extension() # uri扩展名
fake.uri() # uri
fake.url() # url
fake.image_url(width=None, height=None) # 图片url
fake.domain_word() # 域名主体
fake.domain_name() # 域名
fake.tld() # 域名后缀
fake.user_name() # 用户名
fake.user_agent() # UA
fake.mac_address() # MAC地址
fake.safe_email() # 安全邮箱
fake.free_email() # 免费邮箱
fake.company_email() # 公司邮箱
fake.email() # 邮箱

lorem 乱数假文

fake.text(max_nb_chars=200) # 随机生成一篇文章
fake.word() # 随机单词
fake.words(nb=3) # 随机生成几个字
fake.sentence(nb_words=6, variable_nb_words=True) # 随机生成一个句子
fake.sentences(nb=3) # 随机生成几个句子
fake.paragraph(nb_sentences=3, variable_nb_sentences=True) # 随机生成一段文字(字符串)
fake.paragraphs(nb=3) # 随机生成成几段文字(列表)

phone_number 手机号码类:手机号、运营商号段

fake.phone_number() # 手机号码
fake.phonenumber_prefix() # 运营商号段,手机号码前三位

user_agent 用户代理

faker.chrome(version_from=13, version_to=63, build_from=800, build_to=899)
faker.firefox()
faker.internet_explorer()
faker.linux_platform_token()
faker.linux_processor()
faker.mac_platform_token()
faker.mac_processor()
faker.opera()
faker.safari()
faker.user_agent()
faker.windows_platform_token()

Geo 用于生成地理位置相关数据,包括纬度、经度、时区等

faker.coordinate(center=None, radius=0.001) # Decimal('-114.420686')
faker.latitude() # Decimal('-9.772541')
faker.latlng() # (Decimal('-27.0730915'), Decimal('-5.919460'))
faker.local_latlng(country_code="US", coords_only=False) # ('41.47892', '-87.45476', 'Schererville', 'US', 'America/Chicago')
faker.location_on_land(coords_only=False) # ('12.74482', '4.52514', 'Argungu', 'NG', 'Africa/Lagos')
faker.longitude() # Decimal('40.885895')

Misc 用于生成模糊数据,如密码、sha1、sha256、md5 等加密后的内容

faker.boolean(chance_of_getting_true=50) # True
faker.md5(raw_output=False) # '3166fa26ffd3f2a33e020dfe11191ac6'
faker.null_boolean() # False
faker.password(length=10, special_chars=True, digits=True, upper_case=True, lower_case=True) # 'W7Ln8La@%O'
faker.sha1(raw_output=False) # 'c8301a2a79445439ee5287f38053e4b3a05eac79'
faker.sha256(raw_output=False) # '1e909d331e20cf241aaa2da894deae5a3a75e5cdc35c053422d9b8e7ccfa0402'
faker.uuid4(cast_to=<class 'str'>) # '6e6fe387-6877-48d9-94ea-4263c4c71aa5'

barcode 条码类

fake.ean8() # 8位条码
fake.ean13() # 13位条码

job 工作
ssn 社会安全码(身份证号码)
currency 货币
数据共享:通过seed保持数据一致

from faker import Faker
class Test:
def __init__(self):
self.fk = Faker(locale="zh-CN")
def test01(self):
Faker.seed(1111)
print(self.fk.name())
def test02(self):
Faker.seed(1111)
print(self.fk.name())
if __name__ == '__main__':
cl = Test()
cl.test01()
cl.test02()
张建
张建

自定义内置数据

from faker import Faker
from faker.providers import BaseProvider
class PY36(BaseProvider):
names = ('张三', '李四', '王五', '赵六')
def py36_name(self):
return self.random_element(PY36.names) #在names中随机取一个值
# 添加provider
fk = Faker(locale='zh_CN')
fk.add_provider(PY36)
print(fk.py36_name())
posted @   Phoenixy  阅读(403)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示