使用Python实现优雅生成假数据

 更新时间:2023年12月25日 08:11:18   作者:shigen  
Faker是一个Python包,开源的GITHUB项目,主要用来创建伪数据,这篇文章主要为大家详细介绍了Python如何使用Faker生成假数据,感兴趣的小伙伴可以了解下

Faker是一个Python包,开源的GITHUB项目,主要用来创建伪数据,使用Faker包,无需再手动生成或者手写随机数来生成数据,只需要调用Faker提供的方法,即可完成数据的生成。本文参考文章 faker官方文档

上次在讲解python格式化地址的时候提到了要出一期视频,关于Faker的使用教程的,它来了

安装

pip install Faker

使用

from faker import Faker
faker=Faker(locale='zh_CN')
from faker import Faker
faker=Faker(locale='zh_CN')

地理信息类

# city_suffix():市,县
print('city_suffix', faker.city_suffix())
# country():国家
print('country', faker.country())
# country_code():国家编码
print('country_code', faker.country_code())
# district():区
print('district', faker.district())
# latitude():地理坐标(纬度)
print('latitude', faker.latitude())
# longitude():地理坐标(经度)
print('longitude', faker.longitude())
# postcode():邮编
print('postcode', faker.postcode())
# province():省份 (zh_TW没有此方法)
print('province', faker.province())
# address():详细地址
print('address', faker.address())
# street_address():街道地址
print('street_address', faker.street_address())
# street_name():街道名
print('street_name', faker.street_name())
# street_suffix():街、路
print('street_suffix', faker.street_suffix())
city_suffix 县
country 瑞士
country_code EG
district 白云
latitude -3.802822
longitude -104.749853
postcode 515776
province 西藏自治区
address 澳门特别行政区沈阳县南湖兴安盟街B座 298204
street_address 斯路a座
street_name 刘街
street_suffix 街

数字类

# numerify():三位随机数字
print('numerify', faker.numerify())
# random_digit():0~9随机数
print('random_digit', faker.random_digit())
# random_digit_not_null():1~9的随机数
print('random_digit_not_null', faker.random_digit_not_null())
# random_int():随机数字,默认0~9999,可以通过设置min,max来设置
print('random_int', faker.random_int())
# random_number():随机数字,参数digits设置生成的数字位数
print('random_number', faker.random_number())
# pyfloat():left_digits=5 #生成的整数位数, right_digits=2 #生成的小数位数, positive=True #是否只有正数
print('pyfloat', faker.pyfloat(left_digits=5, right_digits=10, positive=False))
# pyint():随机Int数字
print('pyint', faker.pyint())
# pydecimal():随机Decimal数字
print('pydecimal', faker.pydecimal())
numerify 617
random_digit 7
random_digit_not_null 4
random_int 6946
random_number 77948
pyfloat 29172.8052223595
pyint 947
pydecimal -9705319207208612501545.811314881298419529765666280148623635186

随机集合

# profile():随机生成档案信息
print('profile', faker.profile())

# simple_profile():随机生成简单档案信息
print('simple_profile', faker.simple_profile())
# pyiterable()
print('pyiterable', faker.pyiterable())
# pylist()
print('pylist', faker.pylist())
# pyset()
print('pyset', faker.pyset())
# pystruct()
print('pystruct', faker.pystruct())
# pytuple()
print('pytuple', faker.pytuple())
# pydict()
print('pydict', faker.pydict())
profile {'job': '办事处/分公司/分支机构经理', 'company': '诺依曼软件信息有限公司', 'ssn': '420302196212191078', 'residence': '甘肃省成都县普陀宁德路w座 531732', 'current_location': (Decimal('-64.2196785'), Decimal('-164.567579')), 'blood_group': 'A+', 'website': ['http://www.63.cn/', 'https://www.deng.cn/', 'http://www.dong.cn/'], 'username': 'nazhou', 'name': '辛柳', 'sex': 'M', 'address': '山西省玉梅县永川张家港路Z座 235904', 'mail': 'smao@hotmail.com', 'birthdate': datetime.date(1967, 9, 19)}
simple_profile {'username': 'qiangbai', 'name': '贾颖', 'sex': 'F', 'address': '澳门特别行政区玉华市大东深圳街Q座 358582', 'mail': 'yanglin@gmail.com', 'birthdate': datetime.date(1979, 6, 29)}
pyiterable {'https://www.maozeng.cn/app/categories/author/', 'https://www.47.cn/terms/', Decimal('3373604707412099989898153787380589607825384863128704863389997768146744375237.20555771487158522955999621364872105010427822056'), 'ZklwCXYDnTTdkHoXdCxz', 'WgWjZRdaYFIcmhisZTGw', 9814.71706749687, -72.5311411499134, 'wanjing@example.net', 'WnUnOkvQgiBWTiYivDZm', 'bygozqEqBJMjQQjfyyHm', -6800825986307.4, 4543}
pylist ['HhuHlnsZUNVMwhGzJlFA', 'http://www.guiyingzhou.cn/', 5024, 'WIeOdutfPvfqDTojRITV', 'zSueaGRggrRyLcIUNhDH', datetime.datetime(1985, 4, 2, 22, 58, 6), 'nOabKGwOVZRwIZWPqNBi', 'LBwvjnfbYZZYHXLLvcmG', 'OEIYnuzQxLdgyOOxTxZK', 8901, 1811, 'KDjVpoatMDPCFkziWLTy']
pyset {'oJARksoCSTSxnIwbuXKN', Decimal('-83571026066997316223531648468872535284355141105671466437989439161.8120928778166569014500349959991580217968444664'), 50.86722412041, 1467226103.1629, -7.93224347096076, 'http://www.long.cn/privacy.jsp', Decimal('956743502459637986258265434701491050141602711070218002431088.406055588301631590704873788841974753913231402736')}
pystruct (['https://www.leili.cn/register.asp', 'https://67.cn/faq.htm', 'RjVRiTzDRQARXgAFihzI', 'rfVBwUycffjfpTznLsnd', datetime.datetime(1980, 11, 28, 5, 7, 23), 'mintao@example.org', 2971, 'iCtQmgtzmuAbnBNksIQs', 6115, 'xIQgNiLsBlMFBCcofBnS'], {'合作': Decimal('-46.702294634473665210705878258307357926'), '类别': Decimal('13153845283484198297787371954731549936599646162911154034474.14356671708603687343627243460651398006215561502917511323820'), '影响': 'RnLiGrrKKJrvWDxcfnMb', '看到': 'EDotwjrkeSsKgLrCkvNP', '关系': 'eNPRsEPXhGCNkhyWoqsh', '质量': 'http://www.weihan.cn/', '帖子': 'wVzadAcbrrohgQtrAzpf', '一次': Decimal('10845837324860182768635292686667168902637254929877903291718454916492498960017.604745499'), '过程': 28474086435945.3, '可是': datetime.datetime(1998, 11, 13, 7, 15, 9)}, {'准备': {0: 3675, 1: ['ming01@example.net', 'OJoJCANQvZvkAdYxgKwn', datetime.datetime(1974, 4, 28, 5, 21, 54)], 2: {0: -7.36462675287523, 1: 4925502293.3432, 2: ['https://lv.cn/wp-content/author/', Decimal('-7978738727504740089112759095951237.0439166217563516599788352943369126015179771895974362068274728613222')]}}, '等级': {1: -5954.31482255049, 2: ['sGMSyWErnwrjqEwcZAef', Decimal('-155440068874200725091557253786287001605741466478.46'), 740657.495033703], 3: {1: 'ilLtacXwEtZEyObpzGmV', 2: 'ming50@example.net', 3: ['YQODQcpaOPEYJjMkobMi', Decimal('3358734086246498111407695260381508754611780241372718236471.8005500136759971106738428998132697563321913956016317602586621633082267684107156744780267225479')]}}, '工作': {2: 'njrtOUOhgyfgkIdSlRtC', 3: [187.506865651419, 'lRlYwmgMowMRByCxJGuE', 'luoyan@example.net'], 4: {2: 6864057172.88083, 3: -70.3461156709465, 4: ['cCXqZekUusFCNStdUczz', 7230]}}, '解决': {3: datetime.datetime(2003, 3, 31, 3, 4, 33), 4: [2831, 'gangzeng@example.com', 'ming89@example.org'], 5: {3: 'NsEDOyqAQxziAFTPVGCW', 4: 'kAeyFOOZyxgeyLLAyFwd', 5: [6609, 'VQZjzMomdcitUSYpmrue']}}, '进行': {4: 'meOjbWYIwORHAyhABRbJ', 5: [Decimal('48635485080696686797239341623487737997775506023708802806688066429339085821111798482447684249196.7481668175642609248848125822416460'), datetime.datetime(1992, 10, 31, 2, 2, 17), 'blu@example.net'], 6: {4: 'FxlCuyfYrLjWoiyWwzZT', 5: 'kqiao@example.com', 6: ['aLhnzwaIHKqsvyCdbRse', 'guiying41@example.org']}}, '报告': {5: datetime.datetime(2000, 4, 19, 21, 7, 11), 6: ['XrqMMongxXQXogjcjzXN', 'YoGRijQZQxqorgxOUJIa', 'ZMTUqGgJNfaMBcVHlFXm'], 7: {5: 920, 6: 'VDISjmiyLoeXTqOFGcct', 7: ['http://www.min.net/wp-content/explore/index.html', 'http://kt.cn/homepage/']}}, '那些': {6: 'iRGDcfDLIxlsozzFIUpd', 7: ['BvJxbdSaAEHyIMcHZgiq', 5579, 'https://www.kv.cn/explore/search.php'], 8: {6: 770, 7: datetime.datetime(2017, 11, 17, 23, 51, 53), 8: ['QgwEEQPNPaulSSfVslXG', 'hOvpgiZCXunsGofrajyI']}}, '环境': {7: 'zengming@example.com', 8: [2836, 'AjfrzACdCTVtaNuQszOH', Decimal('89071168708384194122892821772270902450012469497119862835336311.61522017674615609878444385261937405175908255942127218747219625')], 9: {7: 1894, 8: 'PfyycooEoZzIKnjlSmUK', 9: [datetime.datetime(1973, 7, 2, 13, 53, 29), 'jieqian@example.net']}}, '有关': {8: datetime.datetime(1991, 10, 7, 19, 7, 45), 9: ['QIHZEibyKfjxefjOpAQg', 'PmAJyfBTLwGwrVKOyTpB', 'MPIjDzFYrNXUekvvjiGC'], 10: {8: 345, 9: Decimal('8327260986335.6812325959251321991755864367211588357553417817446907006457917999788853477347404593592973323038284'), 10: [3308, 'http://www.tl.cn/categories/wp-content/categories/login/']}}, '已经': {9: 'hZZVToKsndyXNyGbRERX', 10: [9720692823966.43, Decimal('-8735655405156743007447967909339.02058883'), 444], 11: {9: 'iCMhujubUtcvZFNvWzdf', 10: 'https://changtian.cn/blog/privacy/', 11: [datetime.datetime(2005, 8, 3, 7, 15, 26), 'YaHNvGfdXsRQSMvykJBN']}}})
pytuple ('HaHZOzJVSGiJJccMjCEE', 562.537262560239, 'xZZtQsadFCfVpEhwpwFE', 'yumin@example.net', 'axia@example.net', 'https://yangmo.cn/main/categories/category/login/', 'AIgGAPdBybYXkfGIvyGX', 'ujUKqNEDulRmpkPoKApo')
pydict {'电影': 'fPRHiHOUdwkotvNCCdKZ', '以及': 'vzivcAgLvauzgXkzvsIq', '程序': 6748, '次数': 'tPSyiXtMCkqreGnjINce', '一下': 'ArRnrdZsBZBoQWixPvEL', '设计': 'NnWWJCxXMxdOEmbScxaD', '积分': 'http://37.cn/', '只是': datetime.datetime(2001, 6, 10, 23, 55, 2)}

工具库类别

# currency_code():货币编码
print('currency_code', faker.currency_code())

# color_name():随机颜色名
print('color_name', faker.color_name())
# hex_color():随机HEX颜色
print('hex_color', faker.hex_color())
# rgb_color():随机RGB颜色
print('rgb_color', faker.rgb_color())
# safe_color_name():随机安全色名
print('safe_color_name', faker.safe_color_name())
# safe_hex_color():随机安全HEX颜色
print('safe_hex_color', faker.safe_hex_color())
# isbn10():随机ISBN(10位)
print('isbn10', faker.isbn10())
# isbn13():随机ISBN(13位)
print('isbn13', faker.isbn13())
# lexify():替换所有问号(“?”)带有随机字母的事件。
print('lexify', faker.lexify())
currency_code LAK
color_name Gainsboro
hex_color #6f16f3
rgb_color 238,163,89
safe_color_name purple
safe_hex_color #441111
isbn10 0-385-45429-5
isbn13 978-0-344-49870-1
lexify hHgd

时间信息类

# am_pm():AM/PM
print('am_pm', faker.am_pm())
# century():随机世纪
print('century', faker.century())
# date():随机日期
print('date', faker.date())
# date_between():随机生成指定范围内日期,参数:start_date,end_date取值:具体日期或者today,-30d,-30y类似
print('date_between', faker.date_between())
# date_between_dates():随机生成指定范围内日期,用法同上
print('date_between_dates', faker.date_between_dates())
# date_object():随机生产从1970-1-1到指定日期的随机日期。
print('date_object', faker.date_object())
# date_this_month():
print('date_this_month',faker.date_this_month())
# date_this_year():
print('date_this_year', faker.date_this_year())
# date_time():随机生成指定时间(1970年1月1日至今)
print('date_time',faker.date_time())
# date_time_ad():生成公元1年到现在的随机时间
print('date_time_ad',faker.date_time_ad())
# date_time_between():用法同dates
print('date_time_between',faker.date_time_between())
# future_date():未来日期
print('future_date',faker.future_date())
# future_datetime():未来时间
print('future_datetime',faker.future_datetime())
# month():随机月份
print('month',faker.month())
# month_name():随机月份(英文)
print('month_name',faker.month_name())
# past_date():随机生成已经过去的日期
print('past_date',faker.past_date())
# past_datetime():随机生成已经过去的时间
print('past_datetime', faker.past_datetime())
# time():随机24小时时间
print('time', faker.time())
# time_object():随机24小时时间,time对象
print('time_object', faker.time_object())
# time_series():随机TimeSeries对象
print('time_series', faker.time_series())
# timezone():随机时区
print('timezone', faker.timezone())
# unix_time():随机Unix时间
print('unix_time', faker.unix_time())
# year():随机年份
print('year', faker.year())
am_pm AM
century XVIII
date 2004-09-18
date_between 2018-04-11
date_between_dates 2023-08-06
date_object 1996-04-21
date_this_month 2023-08-03
date_this_year 2023-03-22
date_time 1998-02-25 20:33:09
date_time_ad 1581-03-23 06:20:22
date_time_between 2014-09-22 19:13:21
future_date 2023-08-31
future_datetime 2023-08-07 03:53:03
month 05
month_name 五月
past_date 2023-07-30
past_datetime 2023-07-13 02:17:22
time 02:06:15
time_object 20:34:37
time_series <generator object Provider.time_series at 0x115911d60>
timezone Europe/Skopje
unix_time 1113767873
year 2004

文本、加密类

因为文章的篇幅过长,其他的API仅作罗列,不做验证和展示,感兴趣的伙伴可以自行查找验证

# pystr():随机字符串
# random_element():随机字母
# random_letter():随机字母
# paragraph():随机生成一个段落
# paragraphs():随机生成多个段落,通过参数nb来控制段落数,返回数组
# sentence():随机生成一句话
# sentences():随机生成多句话,与段落类似
# text():随机生成一篇文章(不要幻想着人工智能了,至今没完全看懂一句话是什么意思)
# word():随机生成词语
# words():随机生成多个词语,用法与段落,句子,类似
# binary():随机生成二进制编码
# boolean():True/False
# language_code():随机生成两位语言编码
# locale():随机生成语言/国际 信息
# md5():随机生成MD5
# null_boolean():NULL/True/False
# password():随机生成密码,可选参数:length:密码长度;special_chars:是否能使用特殊字符;digits:是否包含数字;upper_case:是否包含大写字母;lower_case:是否包含小写字母
# sha1():随机SHA1
# sha256():随机SHA256
# uuid4():随机UUID

文件信息类

# file_extension():随机文件扩展名
print('file_extension', faker.file_extension())
# file_name():随机文件名(包含扩展名,不包含路径)
print('file_name', faker.file_name())
# file_path():随机文件路径(包含文件名,扩展名)
print('file_path', faker.file_path())
# mime_type():随机mime Type
print('mime_type', faker.mime_type())
file_extension js
file_name 电子.mp3
file_path /只是/还有.wav
mime_type multipart/alternative

浏览器信息

强推,用于爬虫的时候真香

# chrome():随机生成Chrome的浏览器user_agent信息
print('chrome', faker.chrome())
# firefox():随机生成FireFox的浏览器user_agent信息
print('firefox', faker.firefox())
# internet_explorer():随机生成IE的浏览器user_agent信息
print('internet_explorer', faker.internet_explorer())
# opera():随机生成Opera的浏览器user_agent信息
print('opera', faker.opera())
# safari():随机生成Safari的浏览器user_agent信息
print('safari', faker.safari())
# linux_platform_token():随机Linux信息
print('linux_platform_token', faker.linux_platform_token())
# user_agent():随机user_agent信息
print('user_agent', faker.user_agent())
chrome Mozilla/5.0 (Windows 95) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/55.0.807.0 Safari/535.1
firefox Mozilla/5.0 (Macintosh; Intel Mac OS X 10_5_6; rv:1.9.2.20) Gecko/9814-12-10 00:45:58 Firefox/3.6.16
internet_explorer Mozilla/5.0 (compatible; MSIE 9.0; Windows 95; Trident/3.1)
opera Opera/8.70.(Windows NT 5.0; ca-ES) Presto/2.9.182 Version/10.00
safari Mozilla/5.0 (Windows; U; Windows NT 6.2) AppleWebKit/533.18.3 (KHTML, like Gecko) Version/4.1 Safari/533.18.3
linux_platform_token X11; Linux i686
user_agent Mozilla/5.0 (Android 2.3.5; Mobile; rv:18.0) Gecko/18.0 Firefox/18.0

网路信息类

# domain_name():生成域名
# domain_word():域词(即,不包含后缀)
# ipv4():随机IP4地址
# ipv6():随机IP6地址
# mac_address():随机MAC地址
# tld():网址域名后缀(.com,.net.cn,等等,不包括.)
# uri():随机URI地址
# uri_extension():网址文件后缀
# uri_page():网址文件(不包含后缀)
# uri_path():网址文件路径(不包含文件名)
# url():随机URL地址
# user_name():随机用户名
# image_url():随机URL地址

个人账户类

# ascii_company_email():随机ASCII公司邮箱名
# ascii_email():随机ASCII邮箱
# ascii_free_email():
# ascii_safe_email():
# company_email():
# email():
# free_email():
# free_email_domain():
# safe_email():安全邮箱

基础信息类

其实在这个api中几乎全部包含了

# profile():随机生成档案信息
print('profile', faker.profile())
# ssn():生成身份证号
# bs():随机公司服务名
# company():随机公司名(长)
# company_prefix():随机公司名(短)
# company_suffix():公司性质
# credit_card_expire():随机信用卡到期日
# credit_card_full():生成完整信用卡信息
# credit_card_number():信用卡号
# credit_card_provider():信用卡类型
# credit_card_security_code():信用卡安全码
# job():随机职位
# first_name():
# first_name_female():女性名
# first_name_male():男性名
# first_romanized_name():罗马名
# last_name():
# last_name_female():女姓
# last_name_male():男姓
# last_romanized_name():
# name():随机生成全名
# name_female():男性全名
# name_male():女性全名
# romanized_name():罗马名
# msisdn():移动台国际用户识别码,即移动用户的ISDN号码
# phone_number():随机生成手机号
# phonenumber_prefix():随机生成手机号段

到此这篇关于使用Python实现优雅生成假数据的文章就介绍到这了,更多相关Python生成假数据内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解python开发环境搭建

    详解python开发环境搭建

    这篇文章主要介绍了详解python开发环境搭建 ,记录一下过程,方便自己以后配置,也方便正在学习中的同事配置他们的环境。
    2016-12-12
  • Python使用random模块实现掷骰子游戏的示例代码

    Python使用random模块实现掷骰子游戏的示例代码

    这篇文章主要介绍了Python使用random模块实现掷骰子游戏的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • Python编辑器Pycharm安装配置超详细教程

    Python编辑器Pycharm安装配置超详细教程

    PyCharm是一款功能强大的Python编辑器,具有跨平台性,下面这篇文章主要给大家介绍了关于Python编辑器Pycharm安装配置的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-01-01
  • Python 多维List创建的问题小结

    Python 多维List创建的问题小结

    这篇文章主要介绍了Python 多维List创建的问题小结,详细的介绍了遇到的一个小问题的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-01-01
  • Python基于递归算法实现的汉诺塔与Fibonacci数列示例

    Python基于递归算法实现的汉诺塔与Fibonacci数列示例

    这篇文章主要介绍了Python基于递归算法实现的汉诺塔与Fibonacci数列,结合实例形式分析了汉诺塔与Fibonacci数列的递归实现技巧,需要的朋友可以参考下
    2018-04-04
  • Python使用PIL模块生成随机验证码

    Python使用PIL模块生成随机验证码

    这篇文章主要为大家详细介绍了Python使用PIL模块生成随机验证码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • Python管理Windows服务小脚本

    Python管理Windows服务小脚本

    这篇文章主要为大家详细介绍了Python管理Windows服务的小脚本,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-03-03
  • python-docx 页面设置详解

    python-docx 页面设置详解

    今天小编就为大家分享一篇python docx 中页面的设置,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-10-10
  • Django解决CORS跨域问题的方案

    Django解决CORS跨域问题的方案

    Cross-Origin Resource Sharing(CORS) 跨域问题,在前后端后离项目,selenium , playweight 自动化测试代码中经常遇到,本文给大家介绍了Django解决CORS跨域问题的方案,文中有详细的代码讲解,需要的朋友可以参考下
    2024-03-03
  • 返回最大值的index pytorch方式

    返回最大值的index pytorch方式

    这篇文章主要介绍了返回最大值的index pytorch方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07

最新评论