python用faker库批量生成假数据
作者:古明地盆 发布时间:2023-04-09 13:15:46
标签:python,faker库,生成假数据
目录
楔子
faker使用方法
基本使用
地理信息类
基础信息类
计算机基础、Internet信息类
网络基础信息类
浏览器信息类
数字类
文本、加密类
时间信息类
小结
楔子
我们平时在做测试的时候,经常会使用一些假数据,而Python中有一个包叫faker(不是打LOL的那个),专门用来生成假数据,并且生成的假数据非常逼真,下面我们就来看一下。
faker使用方法
基本使用
faker使用起来非常简单,我们看一下就知道了。
from faker import Faker
# 导入Faker这个类, 实例化即可
fake = Faker(locale="zh_CN")
# 然后调用里面的方法即可生成相应的假数据
print(fake.name()) # 谢秀华
print(fake.address()) # 四川省莉县白云沈阳路o座 313522
看起来还挺逼真的,但是有一点需要注意,这里的地址并不是真实的地址,而是随机组合出来的,也就是将省、市、道路之类的随机组合在一起。
另外我们在实例化Faker这个类的时候,指定了locale="zh_CN",表示生成中文数据,因为默认是英文数据。faker可以生成多个语言的假数据,支持的语言如下:
简体中文:zh_CN
繁体中文:zh_TW
美国英文:en_US
英国英文:en_GB
德文:de_DE
日文:ja_JP
韩文:ko_KR
法文:fr_FR
我们举个栗子:
from faker import Faker
fake = Faker(locale="ja_JP")
# 指定为日本
print(fake.name()) # 渚 あすか
print(fake.address()) # 栃木県西多摩郡奥多摩町花川戸41丁目7番10号 コート中宮祠994
# 指定为台湾
fake = Faker(locale="zh_TW")
print(fake.name()) # 趙美琪
print(fake.address()) # 23149 新營頂福州巷3段653號3樓
除了上面的name和address,faker还支持生成很多其它的数据。
地理信息类
from faker import Faker
fake = Faker(locale="zh_CN")
# 1. 随机打印一个国家, 此时跟Faker里面locale无关
print(fake.country()) # 吉布提
# 2. 国家编码, 此时跟Faker里面locale无关
print(fake.country_code()) # KW
# 3. 打印区, 此时是中国的区
print(fake.district()) # 朝阳
# 4. 打印纬度
print(fake.latitude()) # -39.076213
# 5. 打印经度
print(fake.longitude()) # 138.988316
# 6. 打印邮编
print(fake.postcode()) # 881534
# 7. 打印省份
print(fake.province()) # 新疆 * 尔自治区
# 8. 打印详细地址
print(fake.address()) # 河北省淑英县丰都永安街D座 260864
# 9. 打印街道地址
print(fake.street_address()) # 姜街c座
# 10. 打印街道名
print(fake.street_name()) # 海门街
# 11. 获取市、县 (打印的是后缀, 要么是县、要么是市)
print(fake.city_suffix()) # 市
print(fake.city_suffix()) # 县
# 12. 打印街、路(打印的是后缀, 要么是路、要么是街)
print(fake.street_suffix()) # 路
print(fake.street_suffix()) # 街
基础信息类
from faker import Faker
fake = Faker(locale="zh_CN")
# 1. * 号
print(fake.ssn()) # 513428197105280989
# 2. 生成公司服务名
print(fake.country_code()) # HT
# 3. 随机公司名(长)
print(fake.company()) # 创联世纪科技有限公司
# 4. 随机公司名(短)
print(fake.company_prefix()) # 信诚致远
# 5. 公司性质
print(fake.company_suffix()) # 信息有限公司
# 6. 随机信用卡到期日
print(fake.credit_card_expire()) # 03/28
# 7. 生成完整信用卡信息
print(fake.credit_card_full())
"""
xx JCB 16 digit
勇 赵
3505427828999283 12/22
CVC: 463
"""
# 8. 信用卡号
print(fake.credit_card_number()) # 44980244740048
# 9. 信用卡类型
print(fake.credit_card_provider()) # Mastercard
# 10. 信用卡安全码
print(fake.credit_card_security_code()) # 581
# 11. 随机职位
print(fake.job()) # 新媒体运营
# 12. 女性的名
print(fake.first_name_female()) # 丽娟
# 13. 男性的名
print(fake.first_name_male()) # 彬
# 14. 女性的姓和男性的姓, 这里的姓和上面的名组合起来得到一个完整的姓名
# 说实话个人觉得last_name_female打印姓有点别扭, 可能老外习惯将姓写在后、名字也在前
# 另外,关于姓,个人觉得其实男女没有太大区别
print(fake.last_name_female()) # 高
print(fake.last_name_male()) # 杨
# 15. 打印全名
print(fake.name()) # 田小红
# 16. 男性全名
print(fake.name_male()) # 朱燕
# 17. 女性全名
print(fake.name_female()) # 王凯
# 18. 随机生成手机号
print(fake.phone_number()) # 18035736881
# 19. 随机生成手机号段
print(fake.phonenumber_prefix()) # 147
计算机基础、Internet信息类
from faker import Faker
fake = Faker(locale="zh_CN")
# 1. 随机ASCII公司邮箱名
print(fake.ascii_company_email()) # minghan@jy.org
# 2. 随机ASCII邮箱
print(fake.ascii_email()) # gang38@yongcui.cn
# 3. 公司邮箱
print(fake.company_email()) # xiuyinggao@guoxia.org
# 4. 邮箱
print(fake.email()) # yang28@hotmail.com
# 5. 安全邮箱
print(fake.safe_email()) # jieqiao@example.com
网络基础信息类
from faker import Faker
fake = Faker(locale="zh_CN")
# 1. 生成域名
print(fake.domain_name()) # lijuan.net
# 2. 域词(即,不包含后缀)
print(fake.domain_word()) # weiyang
# 3. 随机IP4地址
print(fake.ipv4()) # 12.16.224.95
# 4. 随机IP6地址
print(fake.ipv6()) # e6b:5814:4d63:1496:9e0d:eb44:e114:722b
# 5. 随机MAC地址
print(fake.mac_address()) # 8a:1c:ce:eb:f0:5c
# 6. 网址域名后缀(com, net, cn等等,不包括.)
print(fake.tld()) # cn
# 7. 随机URI地址
print(fake.uri()) # https://na.cn/login/
# 8. 网址文件后缀
print(fake.uri_extension()) # .htm
# 9. 网址文件(不包含后缀)
print(fake.uri_page()) # homepage
# 10. 网址文件路径(不包含文件名)
print(fake.uri_path()) # categories
# 11. 随机URL地址
print(fake.url()) # https://jingsong.cn/
# 12. 随机用户名
print(fake.user_name()) # jing13
# 13. 随机URL地址
print(fake.image_url()) # https://dummyimage.com/109x622
浏览器信息类
from faker import Faker
fake = Faker(locale="zh_CN")
# 1. 随机生成Chrome的浏览器user_agent信息
print(fake.chrome())
# Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_7) AppleWebKit/535.0 (KHTML, like Gecko) Chrome/26.0.870.0 Safari/535.0
# 2. 随机生成FireFox的浏览器user_agent信息
print(fake.firefox())
# Mozilla/5.0 (Android 3.2.2; Mobile; rv:15.0) Gecko/15.0 Firefox/15.0
# 3. 随机生成IE的浏览器user_agent信息
print(fake.internet_explorer())
# Mozilla/5.0 (compatible; MSIE 8.0; Windows 98; Win 9x 4.90; Trident/3.1)
# 4. 随机生成Opera的浏览器user_agent信息
print(fake.opera())
# Opera/9.47.(X11; Linux i686; cv-RU) Presto/2.9.186 Version/11.00
# 5. 随机生成Safari的浏览器user_agent信息
print(fake.safari())
"""
Mozilla/5.0 (iPod; U; CPU iPhone OS 4_2 like Mac OS X; ne-NP)
AppleWebKit/534.29.1 (KHTML, like Gecko) Version/3.0.5 Mobile/8B119 Safari/6534.29.1
"""
# 6. 随机Linux信息
print(fake.linux_platform_token()) # X11; Linux x86_64
# 7. 随机user_agent信息
print(fake.user_agent())
# Mozilla/5.0 (Windows NT 5.0; si-LK; rv:1.9.1.20) Gecko/2017-09-23 19:50:28 Firefox/3.8
数字类
这个意义不大,完全可以使用Python的内置模块,或者numpy来实现,这里不说了。
文本、加密类
from faker import Faker
fake = Faker(locale="zh_CN")
# 1. 随机字符串
print(fake.pystr()) # nyfOoBhwiCAYECiKOULE
# 2. 随机字母
print(fake.random_element()) # c
# 3. 随机字母
print(fake.random_letter()) # A
# 4. 随机生成一个段落
print(fake.paragraph()) # 产品特别为了文章.研究不同评论就是还是工程.
# 5. 随机生成多个段落
print(fake.paragraphs())
"""
['一下手机希望责任.合作空间联系最大.',
'用户免费中心部分就是如何男人.次数美国自己影响程序服务.你的类别欢迎日本是一.',
'数据情况工作一起发展应该自己.发展资源内容.']
"""
# 6. 随机生成一句话
print(fake.sentence()) # 更新法律学生应用.
# 7. 随机生成多句话,与段落类似
print(fake.sentences()) # ['服务不过而且对于美国今天价格.', '发布全国语言帖子.', '产品关系问题产品.']
# 8. 随机生成一篇文章
print(fake.text())
"""
这是价格方法阅读.发布对于经济地区开发相关你们合作.
一些更新个人学生重要.什么威望网络影响.
市场这些环境阅读那个类别.软件男人怎么等级状态日本您的.
您的阅读地方论坛.广告帮助位置企业.以下应用运行主要当前只是.
简介只要来自如果科技.那么文化进入公司电话.
名称威望游戏报告最新日期论坛.最大为了如何提高大学.还是文件因为喜欢语言.的是以及资料是否现在两个.
"""
# 9. 随机生成词语
print(fake.word()) # 过程
# 10. 随机生成多个词语,用法与段落,句子,类似
print(fake.words()) # ['任何', '参加', '正在']
# 11. 随机生成二进制编码
print(fake.binary()) # 非常长, 不打印了
# 12. 随机生成两位语言编码
print(fake.language_code()) # ks
# 13. 随机生成语言/国际 信息
print(fake.locale()) # shs_CA
# 14. 随机生成MD5
print(fake.md5()) # 0df0396328281f32b1922cd82016580d
# 15. 随机生成密码,可选参数:
# length:密码长度;special_chars:是否能使用特殊字符;digits:是否包含数字;upper_case:是否包含大写字母;lower_case:是否包含小写字母
print(fake.password()) # C^!5fIk!s8
# 16. 随机SHA1
print(fake.sha1()) # e7d9fa4f3e9a25e5ab44d88971e4c56ef4cc446f
# 17. 随机SHA256
print(fake.sha256()) # 47f9163f2a72edc855ef25289c2cfcd4c213842607b4b936c12a43b477c8ed77
# 18. 随机UUID
print(fake.uuid4()) # 45dc0754-b3e3-4c94-bdcb-d20a3a8f4d9d
时间信息类
意义也不大,有兴趣可以自己了解一下。
小结
个人觉得,faker这个库最有用的就是生成名字和地址了,其实虽然可以生成很多信息,但是常用的只有几个,需要使用的时候直接查就可以了。
来源:https://www.cnblogs.com/traditional/p/13384762.html


猜你喜欢
- 目录生成迷宫走出迷宫可视化总结相信大家都玩过迷宫的游戏,对于简单的迷宫,我们可以一眼就看出通路,但是对于复杂的迷宫,可能要仔细寻找好久,甚至
- 目录1、连接MongoDB2、指定(切换)数据库3、指定(切换)集合4、插入数据5、查询数据6、统计查询7、结果排序8、偏移9、更新数据10
- 木马原理:入侵者使用诸如ASP图片木马生成器之类的工具将一张正常的图片与一个ASP木马文件合并成一个图片文件(即将对网站有害的ASP代码插在
- 一个ASPJPEG组件综合操作的asp类CLASS相关文章:ASP怎么谈到应用到类的?ASP中类的详细介绍(class Property G
- 背景说起Mysql死锁,之前写过一次有关Mysql加锁的基本介绍,对于一些基本的Mysql锁或者死锁都有一个简单的认识,可以看下这篇文章为什
- 效果图:代码如下:<!DOCTYPE html><html><head> <meta
- 本文实例讲述了Python根据区号生成手机号码的方法。分享给大家供大家参考。具体实现方法如下:# _*_ coding:utf-8 _*_#
- BEGIN -- 声明变量 DECLARE v_addtime_begin varchar(13); DECLARE v_addtime_e
- 元类是可以让你定义某些类是如何被创建的。从根本上说,赋予你如何创建类的控制权。元类也是一个类,是一个type类。 元类一般用于创建
- 因为要将js的一个签名算法移植到python上,遇到一些麻烦。int无限宽度,不会溢出算法中需要用到了32位int的溢出来参与运算,但是py
- 目录创建一个Django项目settings.py项目配置文件urls.py路由系统总结创建一个Django项目创建一个名为project的
- degrees()方法从弧度转换到度角x语法以下是degrees()方法的语法:degrees(x)注意:此函数是无法直接访问的
- 使用字符串创建矩阵是一个很实用的功能,之前自己尝试了很多次的小功能使用这个方法就能够简单实现。创建长度为16的字符串,是为了方便能够在各种数
- 现实生活中,有很多场景中的事情是同时进行的,比如开车的时候,手和脚共同来驾驶汽车,再比如唱歌跳舞也是同时进行的。以上这些可以理解为多任务。那
- 以下是个人在学习beautifulSoup过程中的一些总结,目前我在使用爬虫数据时使用的方法的是:先用find_all()找出需要内容所在的
- 布尔表示两值之一:True 或 False。 布尔值在编程中,通常需要知道表达式是 True 还是 False。可以计算 Python 中的
- isnull在数据库查询中的应用,特别是再语句连接的时候需要用到 比如连接时候,某个字段没有值但是又要左连接到其他表上 就会显示空, isn
- 前言实现类似SQL的join操作,通过pd.merge()方法可以自由灵活地操作各种逻辑的数据连接、合并等操作可以将两个DataFrame或
- 阅读目录• 下载MySQL免安装版• 配置MySQL数据库• MySQL环境变量• 安装MySQL数据库 公司服务器是Window
- django-mdeditorGithub地址:https://github.com/pylixm/django-mdeditor 欢迎试用