做开发的时候常常要模拟一些用户数据,自己编写随机数据虽然也可以,但是如果想要模拟比较复杂的数据,那自己做的话就有些麻烦。faker正是这样一个类库,让我们能非常简单的模拟数据。本文参考自官方文档,如果有兴趣可以查看官方文档,不过

安装faker

首先先来安装faker:

pip install Faker

简单使用

faker用起来也很简单,初始化一个实例,然后调用对应的方法就可以获得随机数据。

from faker import Faker
fake = Faker()fake.name()
# 'Lucy Cechtelar'fake.address()
# '426 Jordy Lodge
#  Cartwrightshire, SC 88120-6700'

默认语言是英文,如果要使用其他语言的随机数据,可以简单的向Faker构造函数传递一个代表区域类型的字符串:

fake = Faker('zh_CN')

官方文档列出了所有可用的区域类型以及对应语言的显示实例,常用的自然是en_USzh_CN

数据提供器(Providers)

默认的faker实例自带的方法并不多,只能模拟一些简单数据,但是faker还提供了一种扩展办法,就是添加数据提供器。提供器是一个继承自faker.providers.BaseProvider的类,如果需要自己编写一些新的随机数据生成方法,就可以用提供器。需要注意提供器的类名必须是Provider

from faker import Faker
import random
from faker.providers import BaseProvider# 自定义Provider
class Provider(BaseProvider):def random_hello(self):return random.choice(['hello', 'hi'])fake = Faker('zh_CN')
fake.add_provider(Provider)print(fake.random_hello())
# hello或hi

当然除非特殊情况,其实没必要自己编写Provider,因为faker自带了一大堆Provider,基本上能满足99%的需求。官方文档列出了一些自带的Provider以及社区编写的第三方Provider,它们的功能如下:

  • 地址(省、州、市、邮政编码、街道等)
  • 银行流水号
  • 颜色(颜色名称、RGB编码、十六进制编码等)
  • 公司(公司名、公司缩写等)
  • 信用卡(信用卡号、卡全名、签发商等)
  • 货币
  • 日期(日期、上下午、日期和时间、年月日、世纪、时间、生日、时区,周数等等)
  • 文件(文件路径、文件类型和mime类型等)
  • 地理(经纬度、包括国家省市经纬度在内的地理位置)
  • 网络(电子邮箱地址、主机名、网址等等)
  • ISBN
  • 职业
  • lorem(句子和文本)
  • 混杂(语言编码、布尔值、UUID、MD5、SHA256、密码、SHA1、二进制内容等等)
  • 人(性别、姓名、称呼以及区分性别的姓名和称呼等)
  • 电话号码
  • 档案(简单和复杂的个人档案信息)
  • Python(decimal、int、str、bool等Python值)
  • ssn
  • 用户代理(opera、chrome、火狐、safari等浏览器的用户代理)

最后来一点代码,模拟一些个人数据:

from faker import Faker
import random
from pprint import pprintfake = Faker('zh_CN')def generate_user():return dict(name=fake.name(),password=fake.password(length=10),company=fake.company(),job=fake.job(),birthday=fake.date_of_birth(minimum_age=0, maximum_age=120),telephone=fake.phone_number(),address=fake.address())users = []
for _ in range(0, 2):users.append(generate_user())pprint(users)'''
[{'address': '江苏省潮州市黄浦长沙街j座 695574','birthday': datetime.date(1951, 3, 4),'company': '兰金电子信息有限公司','job': '软件测试','name': '湛莹','password': 'iUCBVtlj&4','telephone': '13383280861'},{'address': '青海省玉市浔阳程街w座 965749','birthday': datetime.date(1972, 1, 17),'company': '立信电子信息有限公司','job': '网页设计/制作/美工','name': '羊杨','password': '#gyXVr_(S3','telephone': '13699862129'}]
'''

如果要用到更多类型的数据,还是参考官方文档比较好,这里列出了faker包含的模拟数据方法和对应的显示,有需要的话可以看看。

用faker模拟数据相关推荐

  1. Python使用FaKer模拟数据!!!

    hello,小伙伴们,大家好,今天给大家介绍的开源项目是: Faker,它解决的问题是python模拟(随机)数据!不知道大家在工作中没有用到过假数据,特别前后端开发的人员,应该经常用到,前端人员页面 ...

  2. Python —— Faker 生成模拟数据

    Faker 生成模拟数据 案例1 # 1.导包 from faker.providers.person import Provider from openpyxl import Workbook# 2 ...

  3. python产生模拟数据——faker库的使用

    简介 使用faker可以获取很多模拟数据,如:姓名.电话.地址.银行.汽车.条形码.公司.信用卡.email.user_agen等等 学会使用这个库,再也不用为制造假数据发愁了...... 同时,使用 ...

  4. 使用建造者模式创建模拟数据

    前言 在写测试用例时,我们经常需要创建模拟数据,在C#中常用的方式是使用nuget包Bogus. Bogus可以按照一定规则生成随机数据,示例代码如下: public class User {publ ...

  5. node.js 生成文件_如何使用Node.js在几秒钟内生成模拟数据

    node.js 生成文件 介绍 (Introduction) In most of the applications, you need to have some static JSON data w ...

  6. C#中使用Bogus创建模拟数据

    原文:CREATING SAMPLE DATA FOR C#[1] 作者:Bruno Sonnino 译文:C#中使用Bogus创建模拟数据 译者: Lamond Lu 背景 在我每次写技术类博文的时 ...

  7. mock模拟的数据能增删改查吗_Mock.js模拟数据,脱离后端独立开发,实现增删改查功能...

    在目前容近对端手近对端手近对端手近对端手近我们的生产实际中,后端的接口往往是较晚才会出来,并且还要写接口文档,于是我们的前端的许多开发都要等到接口给我们才能进行,这样对于我们前端来说显得十分的被动,于 ...

  8. 广告小程序后端开发(4.导入地区数据,修改adminx,修改models,手动添加模拟数据)...

    1.将地区数据引入Area表: 1.全国地区的json数据: {"110000": {"name": "北京市","child&q ...

  9. mock模拟的数据能增删改查吗_使用Swager API Docs和easy-mock生成模拟数据

    前面文章已经搭建了本地的easy-mock 本地搭建Easy-Mock实现模拟数据 常见的Mock方式: 将模拟数据直接写在代码里 利用javascript拦截请求 利用Charles.Fiddler ...

最新文章

  1. 叙述式教学方案计算机技术,计算机病毒及防治叙述式教学设计方案.doc
  2. 常考数据结构与算法:螺旋矩阵m*n
  3. 方法的定义使用,方法重载及方法的递归调用
  4. C语言重复加一个数的所有位数字的算法(附完整源码)
  5. express 项目生成器_用于项目的Express模板生成器(2)| 应用程序结构研究
  6. Python3.6 deep learning first step
  7. python 文本相似度现状_python文本相似度分析
  8. ProxyPass与ProxyPassReverse及ProxyPassMatch的概述
  9. opencv ORB角检测
  10. 最好免费的 HTML5 JS 网站视频播放器收集
  11. FR多sheet的内置检验和JS校验, 数据集范围校验;填报存在时不提交并提示已存在
  12. 一路波折----记我的win10环境下scala安装之路,解决命令窗口报错问题
  13. android源码编译出现No private recovery resources for TARGET_DEVICE解决方法
  14. 初中级前端程序员面试中小型公司会问哪些问题?
  15. 安装scrapy报错failed with error code 1 in C:\Users\ADMINI~1\AppData\Local\Temp\pip-install-dvrc8k5o\Twis
  16. 统计每个部门下男、女人数;统计所有部门中全是男生、全是女生、即有男生又有女生个数
  17. Java中接口的理解和使用
  18. 欧姆龙CP1H与三菱E740变频器 485通讯 串口网关与变频器进行modbus RTU通讯。 功能:触摸屏进行参数设置监控,变频器采用三菱E740
  19. 新款任天堂Switch《游戏机专业投屏充电底座带网口方案》LDR6023B+AX88179
  20. java中exception是什么意思_Java 中的Exception 有什么用?

热门文章

  1. 远程连接工具VNC与windows远程桌面的使用比较
  2. 【Java基础笔记】数据单位
  3. vm安装苹果mac os系统 10.14.cdr
  4. 2021年值得关注的15种软件测试趋势
  5. XGBoost和Boosted Trees
  6. 《Python测试开发技术栈—巴哥职场进化记》—软件测试工程师“兵器库”
  7. 运放的失调电流与失调电压
  8. 什么是VAE与VQ-VAE
  9. 创建vagrant 镜像_自动化 – Vagrant是否可以直接使用操作系统.ISO直接安装映像,或是从ISO中快速创建一个Vagrant Box?...
  10. 【LeGO-LOAM论文阅读(三)--地图优化】