python产生模拟数据faker库的使用详解
简介
使用faker可以获取很多模拟数据,如:姓名、电话、地址、银行、汽车、条形码、公司、信用卡、email、user_agen等等
学会使用这个库,再也不用为制造假数据发愁了。。。。。。
同时,使用起来非常简单,只需要安装,导入库,并创建实例,即可使用,如下:
主要的方法分类
如上面例子,每次调用fake实例的name()方法时,都会产生不同随机姓名。fake实例还有很多方法可用,这些方法分为以下几类:
- address地址
- person人物类:性别、姓名等
- barcode条码类
- color颜色类
- company公司类:公司名、公司email、公司名前缀等
- credit_card银行卡类:卡号、有效期、类型等
- currency货币
- date_time时间日期类:日期、年、月等
- file文件类:文件名、文件类型、文件扩展名等
- internet互联网类
- job工作
- lorem乱数假文
- misc杂项类
- phone_number手机号码类:手机号、运营商号段
- pythonpython数据
- profile人物描述信息:姓名、性别、地址、公司等
- ssn社会安全码(身份证号码)
- user_agent用户代理
address地址
>>>fake.country()#国家 '奥地利' >>>fake.city()#城市 '郑州市' >>>fake.city_suffix()#城市的后缀,中文是:市或县 '市' >>>fake.address()#地址 '河北省巢湖县怀柔南宁路f座169812' >>>fake.street_address()#街道 '邯郸路W座' >>>fake.street_name()#街道名 '合肥路' >>>fake.postcode()#邮编 '314548' >>>fake.latitude()#维度 Decimal('68.0228435') >>>fake.longitude()#经度 Decimal('155.964341')
person人物
>>>fake.name()#姓名 '单玉珍' >>>fake.last_name()#姓 '潘' >>>fake.first_name()#名 '琴' >>>fake.name_male()#男性姓名 '官平' >>>fake.last_name_male()#男性姓 '安' >>>fake.first_name_male()#男性名 '文' >>>fake.name_female()#女性姓名 '许颖'
barcode条码
>>>fake.ean8()#8位条码 '12771363' >>>fake.ean13()#13位条码 '9133134950963' >>>fake.ean(length=8)#自定义位数条码,只能选8或者13 '20417161'
color颜色
>>>fake.hex_color()#16进制表示的颜色 '#671f6d' >>>fake.rgb_css_color()#css用的rgb色 'rgb(237,74,237)' >>>fake.rgb_color()#表示rgb色的字符串 '208,102,218' >>>fake.color_name()#颜色名字 'Brown' >>>fake.safe_hex_color()#安全16进制色 '#ee4400' >>>fake.safe_color_name()#安全颜色名字 'maroon'
company公司
>>>fake.company()#公司名 '时空盒数字科技有限公司' >>>fake.company_suffix()#公司名后缀 '科技有限公司'
credit_card银行信用卡
>>>fake.credit_card_number(card_type=None)#卡号 '375325478746231' >>>fake.credit_card_provider(card_type=None)#卡的提供者 'VISA13digit' >>>fake.credit_card_security_code(card_type=None)#卡的安全密码 '450' >>>fake.credit_card_expire()#卡的有效期 '04/22' >>>fake.credit_card_full(card_type=None)#完整卡信息 'Maestro\n秀芳商\n50200101611704/27\nCVV:144\n'
currency货币
>>>fake.currency_code()#货币代码 'HNL'
date_time时间日期
>>>fake.date_time(tzinfo=None)#随机日期时间 datetime.datetime(2001,3,18,17,57,44) >>>fake.iso8601(tzinfo=None)#以iso8601标准输出的日期 '1973-11-16T22:58:37' >>>fake.date_time_this_month(before_now=True,after_now=False,tzinfo=None)#本月的某个日期 datetime.datetime(2017,11,1,14,33,48) >>>fake.date_time_this_year(before_now=True,after_now=False,tzinfo=None)#本年的某个日期 datetime.datetime(2017,3,2,13,55,31) >>>fake.date_time_this_decade(before_now=True,after_now=False,tzinfo=None)#本年代内的一个日期 datetime.datetime(2010,3,26,6,33,23) >>>fake.date_time_this_century(before_now=True,after_now=False,tzinfo=None)#本世纪一个日期 datetime.datetime(2015,7,21,19,27,53) >>>fake.date_time_between(start_date="-30y",end_date="now",tzinfo=None)#两个时间间的一个随机时间 datetime.datetime(2005,12,3,17,17,15) >>>fake.timezone()#时区 'America/Guatemala' >>>fake.time(pattern="%H:%M:%S")#时间(可自定义格式) '11:21:52' >>>fake.am_pm()#随机上午下午 'PM' >>>fake.month()#随机月份 '02' >>>fake.month_name()#随机月份名字 'August' >>>fake.year()#随机年 '1974' >>>fake.day_of_week()#随机星期几 'Sunday' >>>fake.day_of_month()#随机月中某一天 '02' >>>fake.time_delta()#随机时间延迟 datetime.timedelta(13371,27637) >>>fake.date_object()#随机日期对象 datetime.date(1983,1,26) >>>fake.time_object()#随机时间对象 datetime.time(17,8,56) >>>fake.unix_time()#随机unix时间(时间戳) 1223246848 >>>fake.date(pattern="%Y-%m-%d")#随机日期(可自定义格式) '1984-04-20' >>>fake.date_time_ad(tzinfo=None)#公元后随机日期 datetime.datetime(341,9,11,8,6,9)
file文件
>>>fake.file_name(category="image",extension="png")#文件名(指定文件类型和后缀名) '增加.png' >>>fake.file_name()#随机生成各类型文件 '提供.pdf' >>>fake.file_extension(category=None)#文件后缀 'txt' >>>fake.mime_type(category=None)#mime-type 'image/png'
internet互联网
>>>fake.ipv4(network=False)#ipv4地址 '104.225.105.10' >>>fake.ipv6(network=False)#ipv6地址 'dea6:ca11:39d0:b49f:fff1:82f1:bf88:698b' >>>fake.uri_path(deep=None)#uri路径 'search/categories' >>>fake.uri_extension()#uri扩展名 '.htm' >>>fake.uri()#uri 'https://www.wei.com/terms/' >>>fake.url()#url 'http://zheng.org/' >>>fake.image_url(width=None,height=None)#图片url 'https://www.lorempixel.com/700/990' >>>fake.domain_word()#域名主体 'hu' >>>fake.domain_name()#域名 'hu.cn' >>>fake.tld()#域名后缀 'com' >>>fake.user_name()#用户名 'xia13' >>>fake.user_agent()#UA 'Opera/8.33.(WindowsNT5.1;an-ES)Presto/2.9.171Version/10.00' >>>fake.mac_address()#MAC地址 'd6:38:cc:2a:76:b2' >>>fake.safe_email()#安全邮箱 'mingli@example.net' >>>fake.free_email()#免费邮箱 'tao44@gmail.com' >>>fake.company_email()#公司邮箱 'jingzhong@wang.cn' >>>fake.email()#邮箱 'changjun@hao.com'
job工作
>>>fake.job()#工作职位 'Dealer' >>>fake.job() 'Musician'
lorem乱数假文
>>>fake.text(max_nb_chars=200)#随机生成一篇文章 '语言无法应用为什一点国内.要求完成如何世界电脑发布作品.经济不同教育个人科技全国.\n在线学生发布信息上海状态.\n联系一次通过其实介绍世界.增加也是使用成功那个.\n商品免费管理公司.留言自己这种内容.\n次数内容知道这样女人感觉.操作他的生产出现如何报告文章只有.\n个人文化中心不能发布最新.质量一下提高.感觉最大工具表示最后计划.这是还有次数结果其实特别.' >>>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)#随机生成成几段文字(列表) ['就是发布要求有关这里国际.美国设备深圳经营.首页也是支持报告.','决定可是只有发现开始一直.最后有些项目正在深圳关系决定.下载注册图片更多进行他的那些.','必须他们发生数据准备联系.同时这样内容学校精华.']
misc杂项
>>>fake.binary(length=10)#随机二进制字符串(可指定长度) b'U\xa9@\x1e\x96\xe7\xca\x82\x14f' >>>fake.language_code()#随机语言代码 'tg' >>>fake.md5(raw_output=False)#随机md5,16进制字符串 'cc4feebe419791332bbcff5e0fdf084a' >>>fake.sha1(raw_output=False)#随机sha1,16进制字符串 '8ac0e9980f880860b6e45ae6fd257cc847b7ae8d' >>>fake.sha256(raw_output=False)#随机sha256,16进制字符串 '033151f173f4a389e38e7df2363d89741f752c474e7bdfa2ee0a794bf0b505b5' >>>fake.boolean(chance_of_getting_true=50)#随机真假值(得到True的几率是50%) False >>>fake.null_boolean()#随机真假值和null >>>fake.null_boolean() True >>>fake.password(length=10,special_chars=True,digits=True,upper_case=True,lower_case=True)#随机密码(可指定密码策略) 'F%722TJg_U' >>>fake.locale()#随机本地代码 'hy_AM' >>>fake.uuid4()#随机uuid 'a50d17e7-bc4f-37a3-27b3-04a24fdd0055' >>>
phone_number电话号码
>>>fake.phone_number()#手机号码 '13334603608' >>>fake.phonenumber_prefix()#运营商号段,手机号码前三位 158
pythonpython数据
>>>fake.pyint()#随机int 7775 >>>fake.pyfloat(left_digits=None,right_digits=None,positive=False)#浮点数 -84901.5586333 >>>fake.pydecimal(left_digits=None,right_digits=None,positive=False)#随机高精度数 Decimal('-12273687068527.0') >>>fake.pystr(min_chars=None,max_chars=20)#随机字符串(可指定长度) 'cblutNKFIyegfcHPrjzx' >>>fake.pybool()#随机bool值 True >>>fake.pyiterable(nb_elements=10,variable_nb_elements=True)#随机iterable ['ODfeVvcbAjPDBGwzljQw','https://www.tan.cn/list/category/homepage.php','YQlrsFkBieyKYaXlCljJ',Decimal('42778240911787.2'),Decimal('957411812.6383'),'TGbqZufoiUXLQTZDrVcP','http://yan.com/posts/tags/search/terms.php',3.680492634254,'min57@hotmail.com',datetime.datetime(2001,8,16,6,10,49),'xMMOjlETIgKGqVGTrChG','yong83@xu.cn'] >>>fake.pylist(nb_elements=10,variable_nb_elements=True)#随机生成一个list ['KXQMXAkcEMSLfnIZkgJb','BtowiRsuIqyyULnSYYdr',datetime.datetime(2011,10,10,14,44,2),datetime.datetime(2008,5,10,1,38,38),'juan47@hotmail.com','QEsdUpEqHLpThyWCjkNx',Decimal('-801375867.9'),'ucDyeZnHAXfZtkwdVUbR',4707,datetime.datetime(1974,8,7,1,54,29)] >>>fake.pydict(nb_elements=10,variable_nb_elements=True)#随机字典 {'其中':9047,'一直':'AUiUjuqccIdVAWSqzDbW','选择':'ddong@hotmail.com','开发':datetime.datetime(1972,10,20,14,14,9),'电影':'KYmolBhkjSRxloXXFUUT','文化':2681,'这里':'uyang@yahoo.com','不会':'ZPkwuxWsrJSHMNuFiWEx','社会':'CiujeaZMZSuyYwuKzEdN'} >>>fake.pyset(nb_elements=10,variable_nb_elements=True)#随机set {'bhe@hotmail.com','http://fu.cn/list/home.htm','MlJluVirRkofBnKNtphM',296,'ghoUSHkuEGmCzlJFKyHZ',datetime.datetime(2008,4,4,2,55,4),'AgbynHjdvwYpUkbMsfqr',8751,9649,'tangguiying@hotmail.com',Decimal('5727570036.91'),'HmDkExndcQIOaTtsSpsc','hjQlLLXuHVVzENEwoHJK'} >>>fake.pytuple(nb_elements=10,variable_nb_elements=True)#随机tuple ('http://www.cai.com/index/',datetime.datetime(1973,7,28,2,12,23),'khltJQMYJvIDRMYodviZ','uJezUsEqiHaiFxwOPWvl','qojwZHyytBSQQavkDaTu','AHUCHYuVJTHnoSEuQDSY',1012,'uEYVuzeTlgVhrnCATfKw','https://www.zhou.com/categories/tags/main/','LbLSFZPeATtzHvbmYhGr') >>>fake.pystruct()#随机生成3个有10个元素的python数据结构 ([datetime.datetime(1996,10,26,7,35,26),datetime.datetime(1998,2,28,17,20,8),'qianming@hotmail.com','yEWMrpTqtAHfbxqldGrb','YgKYOnrjuthOrOXhlYIl',datetime.datetime(1994,12,10,0,55,30),Decimal('-6865068.3'),'SYHFHiFvJlRVPcCKumUM',-8619.4354,'kwGipwcASeALLeKdaWBi'],{'同时':'BvtYdkNTHwZNMiIIRwKd','空间':310959668662.457,'特别':'PZQDBuuQWkcdryMloyKS','音乐':Decimal('-7219015925.0'),'项目':'https://www.zhou.cn/main.php','回复':30.408750841,'显示':'etZMrsjXJgZpDfZWhpoS','大小':7472,'类型':'OsjpxgLqnTcdVOlHoMoP','什么':'http://www.xia.com/posts/app/index/'},{'朋友':{0:-415025.243093017,1:[1799,585,'shu@hotmail.com'],2:{0:9980,1:'qnOnFTzGnsjvXGybBnMF',2:['http://zheng.cn/list/search/tag/faq.html',Decimal('964285276661463.0')]}},'发生':{1:-5339010.6134,2:[datetime.datetime(1987,6,23,15,21,45),'SvSpvKqTXlJvdQhHScwM','PZjKOYzZzoNVsHLRcARQ'],3:{1:'https://www.yan.cn/register/',2:2191,3:['HMHKQuLRBQaaAypRbtHU',datetime.datetime(2014,5,24,3,32,36)]}},'我的':{2:'linxia@yahoo.com',3:['http://gu.com/about.php','DhzpWYkgLCobGSHDLXzI',1420],4:{2:datetime.datetime(1986,2,22,4,50,12),3:'rRHwQQzkpAMBQxwVITBa',4:[datetime.datetime(1984,2,6,11,52,18),-73821572962388.7]}},'全部':{3:'uMQeeBXYNGhrHnAerdjp',4:[323329.56403,'kFvqXFhhtQPNtrOjKtxa','http://peng.cn/'],5:{3:'lcaoeisYIAOsuRjbOXia',4:Decimal('-902407032449085.0'),5:[2296,'uyuWgnsONzLluXqXdASM']}},'大小':{4:'min63@hotmail.com',5:[datetime.datetime(1991,10,22,19,21,48),'cDYEScdIokWuvGhRkWqs','XeDJojWyywFvzmWYaokO'],6:{4:Decimal('-4167029.2915827'),5:4030,6:[6372,'xfRXXEFGsNQpeIGmbaHU']}},'语言':{5:'https://www.guo.cn/',6:[6498,datetime.datetime(1981,12,3,18,4,29),42598100345.61],7:{5:'http://zheng.cn/',6:-229316.268238,7:['https://www.qiao.cn/home/','GtaEXeVxjRnnkggjEguv']}},'表示':{6:'xcBvcGUWxdMhDqgzmhSd',7:['kwDaFhyTKqHajGSaNOMf',8561,5456],8:{6:'https://zhou.cn/tags/tag/faq.html',7:'IGayAZtTQVlSOasQwgug',8:['iCjwBzHfmPSLqAgmIOle',70511766106574.5]}},'电子':{7:'http://www.lu.org/tags/posts/terms/',8:[datetime.datetime(1978,8,11,12,16,35),'https://song.cn/main/categories/homepage.html','https://long.com/register.html'],9:{7:'nFJNhyMYBvfTxrYwYPUQ',8:-2252757903.0,9:['GuJnhMEgXoMAivrgGZie',datetime.datetime(2014,5,29,1,17,50)]}},'的人':{8:'WgHePwYSPgSiPllXpLlJ',9:[1782,'fSepbXwpvhiBphzDTDNC',-9117731.63459416],10:{8:5602,9:3664,10:['http://www.mao.com/search/tag/main/',Decimal('5579.7377')]}},'不过':{9:'rOfkDPTHvzKbfvQHbPNm',10:[314.397,'StqeLyXkIDKHfExSjggk','xiuyingkang@gao.cn'],11:{9:'BLKNdcccamYzBwRcMxlx',10:'yongduan@gong.org',11:['ZocoQHdbhaNloWALnzwt','eWVvvHurAlZZRxlYHZXi']}}})
profile人物描述信息
>>>fake.profile(fields=None,sex=None)#人物描述信息:姓名、性别、地址、公司等 {'job':'Licensedconveyancer','company':'万迅电脑信息有限公司','ssn':'370684199902182726','residence':'福建省小红市南长广州街K座406448','current_location':(Decimal('18.050895'),Decimal('-0.877117')),'blood_group':'0-','website':['https://www.yi.org/','https://www.hu.com/','https://www.yin.cn/'],'username':'minghuang','name':'后英','sex':'F','address':'安徽省秀荣市璧山嘉禾路T座954960','mail':'czhong@hotmail.com','birthdate':'1975-03-09'} >>>s=fake.simple_profile(sex="m")#人物精简信息 >>>fori,vins.items(): ...print(i,v) ... usernamechao85 name邴宇 sexM address陕西省东市朝阳廖街Y座757661 mailxiazhang@gmail.com birthdate1996-09-20
ssn社会安全码(身份证)
>>>fake.ssn()#随机生成身份证号(18位) '140100196612297997' >>>len(fake.ssn()) 18
user_agent用户代理
常用在伪造浏览器信息
>>>fake.user_agent()#伪造UA 'Mozilla/5.0(X11;Linuxx86_64)AppleWebKit/5361(KHTML,likeGecko)Chrome/15.0.812.0Safari/5361'
平台信息伪造
>>>fake.linux_platform_token() 'X11;Linuxi686' >>>fake.linux_processor() 'i686' >>>fake.windows_platform_token() 'WindowsCE' >>>fake.mac_platform_token() 'Macintosh;IntelMacOSX10_7_4' >>>fake.mac_processor() 'PPC'
浏览器伪造
>>>fake.internet_explorer()#IE浏览器 'Mozilla/5.0(compatible;MSIE5.0;WindowsNT6.1;Trident/4.0)' >>>fake.opera()#opera浏览器 'Opera/9.37.(Windows95;doi-IN)Presto/2.9.178Version/10.00' >>>fake.firefox()#firefox浏览器 'Mozilla/5.0(WindowsNT5.0;te-IN;rv:1.9.2.20)Gecko/2015-09-2813:29:05Firefox/12.0' >>>fake.safari()#safari浏览器 'Mozilla/5.0(Windows;U;WindowsNT4.0)AppleWebKit/533.37.4(KHTML,likeGecko)Version/5.0Safari/533.37.4' >>>fake.chrome()#chrome浏览器 'Mozilla/5.0(Windows98;Win9x4.90)AppleWebKit/5361(KHTML,likeGecko)Chrome/14.0.866.0Safari/5361'
自定义扩展
Faker已经提供了足够丰富的信息生成,包括名字、手机号、邮箱地址、邮编等等。尽管如此,可能还是没有办法满足你的需求。这时,可以利用自定义扩展,引用外部的provider,自定义你要的功能。
Faker对象可以通过add_provider方法将自定义的Provider添加到对象中,自定义的Provider需要继承自BaseProvider。
fromfakerimportFaker fake=Faker() #first,importasimilarProviderorusethedefaultone fromfaker.providersimportBaseProvider #createnewproviderclass classMyProvider(BaseProvider): deffoo(self): return'bar' #thenaddnewprovidertofakerinstance fake.add_provider(MyProvider) #nowyoucanuse: print(fake.foo())
结果显示:
bar
随机控制
Faker随机生成由random.Random驱动。其中,.random属性返回random.Random对象。通过对该对象的操作,可以实现自定义的行为。
fromfakerimportFaker fake=Faker() fake.random fake.random.getstate()
安装:
pipinstallfaker
使用:
fromfakerimportFaker fake=Faker() foriinrange(0,10): print(fake.name())
不做进一步的解释了哈,
更详细的请参见faker的文档地址:https://faker.readthedocs.io/en/master/#
到此这篇关于python产生模拟数据faker库的使用详解的文章就介绍到这了,更多相关pythonfaker库内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!