python之模拟数据Faker
Faker
,它解决的问题是python
模拟(随机)数据!不知道大家在工作中没有用到过假数据,特别前后端开发的人员,应该经常用到,前端人员页面展示,效果展示。后端人员数据库数据模拟。今天给大家介绍的这个项目完美的解决了这个方案,可以模拟多种语言的数据,中文,英文,日语,韩语等等。有兴趣的小伙伴可以下载尝试一下。
安装:
pip install Faker
基本用法
使用faker.Faker()初始化,可通过访问你想要的数据类型来命名的属性生成你要的数据。
from faker import Faker
fake = Faker() fake.name()
# 'Lucy Cechtelar' fake.address()
# '426 Jordy Lodge
# Cartwrightshire, SC 88120-6700' fake.text()
# 'Sint velit eveniet. Rerum atque repellat voluptatem quia rerum. Numquam excepturi
# beatae sint laudantium consequatur. Magni occaecati itaque sint et sit tempore. Nesciunt
# amet quidem. Iusto deleniti cum autem ad quia aperiam.
# A consectetur quos aliquam. In iste aliquid et aut similique suscipit. Consequatur qui
# quaerat iste minus hic expedita. Consequuntur error magni et laboriosam. Aut aspernatur
# voluptatem sit aliquam. Dolores voluptatum est.
# Aut molestias et maxime. Fugit autem facilis quos vero. Eius quibusdam possimus est.
# Ea quaerat et quisquam. Deleniti sunt quam. Adipisci consequatur id in occaecati.
# Et sint et. Ut ducimus quod nemo ab voluptatum.'
from faker import Faker
fake = Faker("zh-CN") fake.name()
# '张柳' fake.address()
# '黑龙江省辽阳县江北李路C座 461467' fake.text()
# '继续浏览音乐行业国内什么.任何同时专业但是人民而且无法.认为大家的是更新.
数据设备日本更多.生活发表一般最大一下.状态得到游戏今天喜欢.
专业无法工作这么文化如此感觉教育.工程全部详细注意.现在增加女人一些日本觉得不过.
感觉原因全部感觉表示.质量所以管理但是因此.图片都是一种注册表示主要汽车影响.
质量喜欢有关希望更多.已经那个更多决定运行.
系列名称完全研究女人没有企业.'
可以自定义不同的语言,也可以输出多种语言,这里我们就展示中英文,有兴趣的可以去查看官方文档。
生成IP地址
from faker import Faker
from faker.providers import internet fake = Faker()
fake.add_provider(internet) print(fake.ipv4_private())
# '192.168.91.234'
随机生成IP地址,每次产生不同的(随机)结果。
命令行用法
faker [-h] [--version] [-o output]
[-l {bg_BG,cs_CZ,...,zh_CN,zh_TW}]
[-r REPEAT] [-s SEP]
[-i {package.containing.custom_provider otherpkg.containing.custom_provider}]
[fake] [fake argument [fake argument ...]]
Where:
faker
: is the script when installed in your environment, in development you could usepython -m faker
instead-h, --help
: 显示帮助文档--version
: 显示版本信息-o FILENAME
: 将输出重定向到指定的文件名中。-l {bg_BG,cs_CZ,...,zh_CN,zh_TW}
: 允许自定义语言,一种或多种语言。-r REPEAT
: 指定输出的数量-s SEP
: 每次生成输出后,会生成指定的字符-i {my.custom_provider other.custom_provider}
list of additional custom providers to use. Note that is the import path of the package containing your Provider class, not the custom Provider class itself.fake
: 用于生成输出(例如名称、地址或文本)的伪名称[fake argument ...]
: 传递给fake的可选参数
$ faker address
968 Bahringer Garden Apt. 722
Kristinaland, NJ 09890 $ faker -l de_DE address
Samira-Niemeier-Allee 56
94812 Biedenkopf $ faker profile ssn,birthdate
{'ssn': u'628-10-1085', 'birthdate': '2008-03-29'} $ faker -r=3 -s=";" name
Willam Kertzmann;
Josiah Maggio;
Gayla Schmitt;
自定义数据
如果不想使用默认数据,可以提供自己的单词集。
fake = Faker() my_word_list = [
'danish','cheesecake','sugar',
'Lollipop','wafer','Gummies',
'sesame','Jelly','beans',
'pie','bar','Ice','oat' ] fake.sentence()
# 'Expedita at beatae voluptatibus nulla omnis.' fake.sentence(ext_word_list=my_word_list)
# 'Oat beans oat Lollipop bar cheesecake.'
常用方法:
from faker import Faker
from faker.providers import internet fake = Faker("zh-CN") # 产生随机手机号
print(fake.phone_number())
# 产生随机姓名
print(fake.name())
# 产生随机地址
print(fake.address())
# 随机产生国家名
print(fake.country())
# 随机产生国家代码
print(fake.country_code())
# 随机产生城市名
print(fake.city_name())
# 随机产生城市
print(fake.city())
# 随机产生省份
print(fake.province())
# 产生随机email
print(fake.email())
# 产生随机IPV4地址
print(fake.ipv4())
# 产生长度在最大值与最小值之间的随机字符串
print(fake.pystr(min_chars=0, max_chars=8)) # 随机产生车牌号
print(fake.license_plate()) # 随机产生颜色
print(fake.rgb_color()) # rgb
print(fake.safe_hex_color()) # 16进制
print(fake.color_name()) # 颜色名字
print(fake.hex_color()) # 16进制 # 随机产生公司名
print(fake.company()) # 随机产生工作岗位
print(fake.job())
# 随机生成密码
print(fake.password(length=10, special_chars=True, digits=True, upper_case=True, lower_case=True))
# 随机生成uuid
print(fake.uuid4())
# 随机生成sha1
print(fake.sha1(raw_output=False))
# 随机生成md5
print(fake.md5(raw_output=False)) # 随机生成女性名字
print(fake.name_female())
# 男性名字
print(fake.name_male())
# 随机生成名字
print(fake.name()) # 生成基本信息
print(fake.profile(fields=None, sex=None))
print(fake.simple_profile(sex=None)) # 随机生成浏览器头user_agent
print(fake.user_agent()) # 随机产生时间 月份
print(fake.month_name())
# 'May'
print(fake.date_time_this_century(before_now=True, after_now=False, tzinfo=None))
# 2005-10-08 08:32:02
print(fake.time_object(end_datetime=None))
# 06:45:11
print(fake.date_time_between(start_date="-10y", end_date="now", tzinfo=None))
# 2012-08-25 03:07:38
print(fake.future_date(end_date="+30d", tzinfo=None))
# 2020-04-25
print(fake.date_time(tzinfo=None, end_datetime=None))
# 2002-09-01 18:27:45
print(fake.date(pattern="%Y-%m-%d", end_datetime=None))
# '1998-08-02'
print(fake.date_time_this_month(before_now=True, after_now=False, tzinfo=None))
# 2020-04-03 16:03:21
print(fake.timezone())
# 'Africa/Addis_Ababa'
print(fake.date_time_this_decade(before_now=True, after_now=False, tzinfo=None))
# 2020-01-09 01:15:08
print(fake.month())
# '04'
print(fake.day_of_week())
# 'Sunday'
print(fake.iso8601(tzinfo=None, end_datetime=None))
# '1988-02-28T09:22:29'
print(fake.date_object(end_datetime=None))
# 2017-06-26
print(fake.date_this_decade(before_today=True, after_today=False))
# 2020-03-30
fake.date_this_century(before_today=True, after_today=False)
# datetime.date(2000, 6, 1)
fake.date_this_month(before_today=True, after_today=False)
# datetime.date(2018, 6, 13)
fake.am_pm()
# 'AM'
fake.past_datetime(start_date="-30d", tzinfo=None)
# datetime.datetime(2018, 6, 25, 7, 41, 34)
fake.date_this_year(before_today=True, after_today=False)
# datetime.date(2018, 2, 24)
fake.date_time_between_dates(datetime_start=None, datetime_end=None, tzinfo=None)
# datetime.datetime(2018, 6, 26, 14, 40, 5)
fake.date_time_ad(tzinfo=None, end_datetime=None)
# datetime.datetime(673, 1, 28, 18, 17, 55)
fake.date_between_dates(date_start=None, date_end=None)
# datetime.date(2018, 6, 26)
fake.future_datetime(end_date="+30d", tzinfo=None)
# datetime.datetime(2018, 7, 4, 10, 53, 6)
fake.century()
# 'IX'
fake.past_date(start_date="-30d", tzinfo=None)
# datetime.date(2018, 5, 30)
fake.time(pattern="%H:%M:%S", end_datetime=None)
# '01:32:14'
fake.day_of_month()
# '19'
fake.unix_time(end_datetime=None, start_datetime=None) fake.date_time_this_year(before_now=True, after_now=False, tzinfo=None)
# datetime.datetime(2018, 5, 24, 11, 25, 25)
fake.date_between(start_date="-30y", end_date="today")
# datetime.date(2003, 1, 11)
fake.year()
# '1993'
fake.time_series(start_date="-30d", end_date="now", precision=None, distrib=None, tzinfo=None)
# <generator object time_series at 0x7f44e702a620> # 随机产生文件
fake.file_extension(category=None)
# 'xls'
print(fake.file_name(category=None, extension=None))
# 那么.mov
fake.file_path(depth=1, category=None, extension=None)
# '/教育/客户.js'
fake.unix_device(prefix=None)
# '/dev/sdf'
print(fake.unix_partition(prefix=None))
# '/dev/vdv4'
print(fake.mime_type(category=None))
# 'message/imdn+xml'
开源地址: https://github.com/joke2k/fakerv
项目文档:https://faker.readthedocs.io/en/master/
python之模拟数据Faker的更多相关文章
- MySQL实验准备(二)--Python模拟数据(MySQL数据库)
Python模拟数据(MySQL数据库) 数据模拟 目的:模拟多个表的插入和查询数据的模拟,再通过基准测试脚本测试服务器性能和收集数据,仿真模拟. 备注: 如果需要基础的python环境,可以查看&l ...
- Python requests模拟登录
Python requests模拟登录 #!/usr/bin/env python # encoding: UTF-8 import json import requests # 跟urllib,ur ...
- 用python实现模拟登录人人网
用python实现模拟登录人人网 字数4068 阅读1762 评论19 喜欢46 我决定从头说起.懂的人可以快速略过前面理论看最后几张图. web基础知识 从OSI参考模型(从低到高:物理层,数据链路 ...
- 【小白学爬虫连载(10)】–如何用Python实现模拟登陆网站
Python如何实现模拟登陆爬取Python实现模拟登陆的方式简单来说有三种:一.采用post请求提交表单的方式实现.二.利用浏览器登陆网站记录登陆成功后的cookies,采用get的请求方式,传入c ...
- C#中使用Bogus创建模拟数据
原文:CREATING SAMPLE DATA FOR C# 作者:Bruno Sonnino 译文:C#中使用Bogus创建模拟数据 译者: Lamond Lu 背景 在我每次写技术类博文的时候,经 ...
- 【爬虫】python requests模拟登录知乎
需求:模拟登录知乎,因为知乎首页需要登录才可以查看,所以想爬知乎上的内容首先需要登录,那么问题来了,怎么用python进行模拟登录以及会遇到哪些问题? 前期准备: 环境:ubuntu,python2. ...
- python 手机App数据抓取实战一
前言 当前手机使用成为互联网主流,每天手机App产生大量数据,学习爬虫的人也不能只会爬取网页数据,我们需要学习如何从手机 APP 中获取数据,本文就以豆果美食为例,讲诉爬取手机App的流程 环境准备 ...
- Mockjs,模拟数据生成器
(推荐使用)Mock.js是一款模拟数据生成器,旨在帮助前端攻城师独立于后端进行开发,帮助编写单元测试. 提供了以下模拟功能: 1. 根据数据模板生成模拟数据. 2. 模拟Ajax请求,生成并返回模拟 ...
- 使用Python解析JSON数据的基本方法
这篇文章主要介绍了使用Python解析JSON数据的基本方法,是Python入门学习中的基础知识,需要的朋友可以参考下: ----------------------------------- ...
- App开发如何利用Fidder,在api接口还没有实现的情况下模拟数据,继续开发
相信app开发很多时候,都是等后台出接口,拿到数据调试错误.殊不知,我们完全可以不用等,只要有约定好的接口定义文档,借助工具就能做到,自己模拟数据返回~ 下面主要是在项目组开发过程中,使用F ...
随机推荐
- ASP.NET Core – HttpClient
前言 以前写过的文章 Asp.net core 学习笔记 ( HttpClient ). 其实 HttpClient 内容是挺多的, 但是我自己用到的很少. 所以这篇记入一下自己用到的就好了. 参考 ...
- CSS – W3Schools 学习笔记 (3)
CSS Rounded Corners Link to W3Schools 它是用来画圆角的, 假设有 1 给正方形, 100px. border-top-left-radius: 30px; bef ...
- MyBatis——案例——环境准备
配置文件完成增删改查 准备环境 数据库表 tb_brand -- 创建tb_brand表 create table tb_brand( id int primary k ...
- 痞子衡嵌入式:MCUBootUtility v6.3发布,支持获取与解析启动日志
-- 痞子衡维护的 NXP-MCUBootUtility 工具距离上一个大版本(v5.3.0)发布过去一年了,期间痞子衡也做过三个版本更新,但不足以单独介绍.这一次痞子衡为大家带来了全新重要版本v6. ...
- 基于SqlAlchemy+Pydantic+FastApi的Python开发框架的路由处理
在前面随笔<基于SqlAlchemy+Pydantic+FastApi的Python开发框架>中介绍了框架总体的内容,其中主要的理念就是通过抽象接口的方式,实现代码的重用,提高开发效率.本 ...
- Java远程连接服务器实现文件上传下载及目录操作
详情请阅读原文 在其基础之上做了进一步的封装 <!-- https://mvnrepository.com/artifact/com.jcraft/jsch --> <depende ...
- Termux 使用笔记
第一次安装完成后 发现这里面啥都没有 所以 更新源 apt update 也做不到 这是因为 源是国外 由于有墙 所以连接不上 下面这个命令可以 切换更新源 termux-change-repo 切换 ...
- 从2s优化到0.1s,我用了这5步
前言 分类树查询功能,在各个业务系统中可以说随处可见,特别是在电商系统中. 但就是这样一个简单的分类树查询功能,我们却优化了5次. 到底是怎么回事呢? 背景 我们的网站使用了SpringBoot推荐的 ...
- 别再售卖 5块钱 的 Win10 激活码了,后果很严重
为了推广Windows 10系统(以下简称Win10),微软过去几年中一直给免费升级,Win7免费洗白的策略现在都还管用. 微软的大方也让很多人忘了Win10系统是要收费的,而且价格不便宜,国内的话, ...
- 乐观锁CAS
在 Java 中,我们可以使用 synchronized 关键字和 CAS 来实现加锁效果. 悲观锁: 对于悲观锁来说,它总是认为每次访问共享资源时会发生冲突,所以必须对每次数据操作加上锁,以保证临界 ...