python用faker库批量生成假数据

楔子

我们平时在做测试的时候,经常会使用一些假数据,而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这个库最有用的就是生成名字和地址了,其实虽然可以生成很多信息,但是常用的只有几个,需要使用的时候直接查就可以了。

以上就是python用faker库批量生成假数据的详细内容,更多关于python faker库生成假数据的资料请关注我们其它相关文章!

(0)

相关推荐

  • 详解Python中第三方库Faker

    项目开发初期,为了测试方便,我们总要造不少假数据到系统中,尽量模拟真实环境. 比如要创建一批用户名,创建一段文本,电话号码,街道地址.IP地址等等. 平时我们基本是键盘一顿乱敲,随便造个什么字符串出来,当然谁也不认识谁. 现在你不要这样做了,用Faker就能满足你的一切需求. 1. 安装 pip install Faker 2. 简单使用 >>> from faker import Faker >>> fake = Faker(locale='zh_CN') >&

  • Python 随机生成测试数据的模块:faker基本使用方法详解

    本文实例讲述了Python 随机生成测试数据的模块:faker基本使用方法.分享给大家供大家参考,具体如下: 本文内容: faker的介绍 faker的使用 小例子:生成随机的数据表信息 首发日期:2018-06-15 faker介绍: faker是python的一个第三方模块,是一个github上的开源项目. 主要用来创建一些测试用的随机数据. 官方文档:https://faker.readthedocs.io/en/master/index.html faker的使用: 1.安装模块 pip

  • python随机生成库faker库api实例详解

    废话不多说,直接上代码! # -*- coding: utf-8 -*- # @Author : FELIX # @Date : 2018/6/30 9:49 from faker import Factory # zh_CN 表示中国大陆版 fake = Factory().create('zh_CN') # 产生随机手机号 print(fake.phone_number()) # 产生随机姓名 print(fake.name()) # 产生随机地址 print(fake.address())

  • Python基于Faker假数据构造库

    1. 背景 在软件需求.开发.测试过程中,有时候需要使用一些测试数据,针对这种情况,我们一般要么使用已有的系统数据,要么需要手动制造一些数据.由于现在的业务系统数据多种多样,千变万化.在手动制造数据的过程中,可能需要花费大量精力和工作量,此项工作既繁复又容易出错,比如要构造一批用户三要素(姓名.手机号.身份证).构造一批银行卡数据.或构造一批地址通讯录等. 这时候,人们常常为了偷懒快捷,测试数据大多数可能是类似这样子的: 测试, 1300000 000123456 张三, 1310000 000

  • python利用faker库批量生成测试数据

    安装 pip install faker 使用 简单使用 本库可生成姓名.地址.电话.邮箱.公司等等一系列数据.首先导入库,实例化: from faker import Faker fake = Faker() 先看看正面生成一个人的姓名地址吧: for _ in range(10): print(fake.name()) rs. Elizabeth Carter MD Mark Obrien Madeline Oliver Ruth Newman Lori Bennett Victor Nol

  • python的faker库用法

    faker是一个生成伪造数据的Python第三方库,可以伪造城市,姓名,等等,而且支持中文,需要的时候可以一用. 首先需要:pip install faker In [530]: import faker In [531]: init = faker.Faker(locale='zh-cn') In [532]: init.name() Out[532]: '诸明' In [533]: L = [] In [534]: for i in range(100): ...: name = init.

  • python产生模拟数据faker库的使用详解

    简介 使用faker可以获取很多模拟数据,如:姓名.电话.地址.银行.汽车.条形码.公司.信用卡.email.user_agen等等 学会使用这个库,再也不用为制造假数据发愁了...... 同时,使用起来非常简单,只需要安装,导入库,并创建实例,即可使用,如下: 主要的方法分类 如上面例子,每次调用 fake 实例的 name()方法时,都会产生不同随机姓名.fake 实例还有很多方法可用,这些方法分为以下几类: address 地址 person 人物类:性别.姓名等 barcode 条码类

  • Python faker生成器生成虚拟数据代码实例

    今天给大家介绍一个Faker模块,一款基于Python的测试数据生成工具,无论是用于初始化数据库,创建XML文件,或是生成压测数据,Faker都是不错的选择. 1.Faker工具包 只需要使用pip便可下载该工具包 pip install faker 如果下载速度比较慢的话,可以使用国内镜像源来下载 国内源: - 清华:https://pypi.tuna.tsinghua.edu.cn/simple - 阿里云:http://mirrors.aliyun.com/pypi/simple/ - 中

  • 关于Python-faker的函数效果一览

    tags faker 随机 虚拟 faker文档链接 代码程序: # -*- coding=utf-8 -*- import sys from faker import Factory reload(sys) sys.setdefaultencoding('utf8') fake = Factory().create('zh_CN') li = dir(fake) def get_dir_run(): with open('somefile.txt', 'wt') as f: for i in

  • python用faker库批量生成假数据

    楔子 我们平时在做测试的时候,经常会使用一些假数据,而Python中有一个包叫faker(不是打LOL的那个),专门用来生成假数据,并且生成的假数据非常逼真,下面我们就来看一下. faker使用方法 基本使用 faker使用起来非常简单,我们看一下就知道了. from faker import Faker # 导入Faker这个类, 实例化即可 fake = Faker(locale="zh_CN") # 然后调用里面的方法即可生成相应的假数据 print(fake.name()) #

  • laravel批量生成假数据的方法

    D:\phpStudy\WWW\api.douxiaoli.com\database\factories\ModelFactory.php D:\phpStudy\WWW\BCCKidV1.0\vendor\fzaninotto\faker\src\Faker\Generator.php $factory->define(App\User::class, function (Faker\Generator $faker) { static $password; #定义假数据长什么样子 retur

  • python 利用toapi库自动生成api

    在学习做接口测试自动化的时候,我们往往会自己动手写一些简单的API,比如写一个简单的TODO API之类. 不过自己写API的时候经常需要造一些假数据,以及处理分页逻辑,开始的时候还觉得比较有意思,但久而久之就显得比较乏味了. 这时候你可能会想,有没有什么工具可以自动将一个线上的网站转化成简单的API呢? 这样的工具确实是存在的,而且不少,其中python语言中比较受欢迎的实现是https://github.com/gaojiuli/toapi项目,项目名称是toapi. 我们来简单体验一下这个

  • python使用openpyxl库修改excel表格数据方法

    1.openpyxl库可以读写xlsx格式的文件,对于xls旧格式的文件只能用xlrd读,xlwt写来完成了. 简单封装类: from openpyxl import load_workbook from openpyxl import Workbook from openpyxl.chart import BarChart, Series, Reference, BarChart3D from openpyxl.styles import Color, Font, Alignment from

  • python调用HEG工具批量处理MODIS数据的方法及注意事项

    下面的代码主要用于使用python语言调用NASA官方的MODIS处理工具HEG进行投影坐标转换与重采样批量处理 主要参考 HEG的用户手册:https://newsroom.gsfc.nasa.gov/sdptoolkit/HEG/HEG215/EED2-TP-030_Rev01_HEG_UsersGuide_2.15.pdf HEG批处理帮助:https://newsroom.gsfc.nasa.gov/sdptoolkit/HEG/HEG_Batch_job_Help.htm 主要的注意事

  • mock.js实现模拟生成假数据功能示例

    本文实例讲述了mock.js实现模拟生成假数据功能.分享给大家供大家参考,具体如下: mock使用方法很简单, 下面是简单的用法, 详细的用法可以看官方文档, 写的很清楚, 下面的代码直接拷贝到本地html文件, 双击打开即可生成你想要的数据 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible"

  • Python中seaborn库之countplot的数据可视化使用

    在Python数据可视化中,seaborn较好的提供了图形的一些可视化功效. seaborn官方文档见链接:http://seaborn.pydata.org/api.html countplot是seaborn库中分类图的一种,作用是使用条形显示每个分箱器中的观察计数.接下来,对seaborn中的countplot方法进行详细的一个讲解,希望可以帮助到刚入门的同行. 导入seaborn库 import seaborn as sns 使用countplot sns.countplot() cou

  • 通过抓取淘宝评论为例讲解Python爬取ajax动态生成的数据(经典)

    在学习python的时候,一定会遇到网站内容是通过 ajax动态请求.异步刷新生成的json数据 的情况,并且通过python使用之前爬取静态网页内容的方式是不可以实现的,所以这篇文章将要讲述如果在python中爬取ajax动态生成的数据. 至于读取静态网页内容的方式,有兴趣的可以查看本文内容. 这里我们以爬取淘宝评论为例子讲解一下如何去做到的. 这里主要分为了四步: 一 获取淘宝评论时,ajax请求链接(url) 二 获取该ajax请求返回的json数据 三 使用python解析json数据

随机推荐