python工具——Mimesis的简单使用教程

Mimesis是一个用于Python的高性能伪数据生成器, 支持多种不同的语言

可以用来生成各种测试数据、假的 API 、任意结构的 JSON 、XML 数据

安装

pip install mimesis

示例

from mimesis import Person

person = Person('zh')
print(f'name: {person.surname() + "" + person.name()}')
print(f'sex: {person.sex()}')
print(f'academic degree: {person.academic_degree()}')
print(f'occupation: {person.occupation()}')
email = person.email(domains=['126.com'])
print(f'email: {email}')
phone = person.telephone(mask='132-8###-5##3')
print(f'telephone: {phone}')

结果

查看 Person 对象里面都有什么数据

from mimesis import Person
from pprint import pprint
person = Person('zh')
pprint(vars(person))

数据结构

{'_data': {'academic_degree': ['学士', '研究生', '博士'],
      'gender': ['男性', '女性'],
      'language': ['南非语',
            ……
            '中文',
            '祖鲁语'],
      'names': {'female': ['朵雯',
                ……
                '若未'],
           'male': ['彦龙',
               ……
               '清妍']},
      'nationality': ['阿尔及利亚',
              ……
              '南乔治亚岛和南桑威奇群岛'],
      'occupation': ['民意代表',
             ……
             '职业运动员'],
      'political_views': ['社会主義', '民主', '共産'],
      'sexuality': ['异性恋', '同性恋', '双性恋', '无性恋'],
      'surnames': ['赵',
            ……
            '司空'],
      'telephone_fmt': ['+86 ###-########'],
      'title': {'female': {'academic': ['工学硕士',
                       ……
                       '教授'],
                'typical': ['小姐', '女士']},
           'male': {'academic': ['工学硕士',
                      ……
                      '教授'],
               'typical': ['先生']}},
      'university': ['北京大学',
             ……
             '新疆工业职业技术学'],
      'views_on': ['負面', '正面', '中立'],
      'worldview': ['无神论', '不可知論', '自然神論', '泛神论', '儒教']},
 '_data_dir': WindowsPath('D:/Python37/lib/site-packages/mimesis/data'),
 '_datafile': 'person.json',
 '_store': {'age': 0},
 'locale': 'zh',
 'random': <mimesis.random.Random object at 0x0000000002A41EA8>,
 'seed': None}

除了Person ,还有 food、 address、transport、Business 等对象提供的相应假数据

生成json数据

eg:

data.py

from mimesis.schema import Field,Schema
from mimesis.enums import Gender
_ = Field('zh')
schema = Schema(schema=lambda: {
  'id': _('uuid'),
  'name': _('person.name'),
  'version': _('version', pre_release=True),
  'timestamp': _('timestamp', posix=False),
  'owner': {
    'email': _('person.email', domains=['test.com'], key=str.lower),
    'token': _('token_hex'),
    'creator': _('full_name', gender=Gender.FEMALE)
  },
  'address': {
    'country': _('address.country'),
    'province': _('address.province'),
    'city': _('address.city')
  }
})

使用FastAPI

from fastapi import FastAPI
from data import schema
app = FastAPI()

@app.get("/")
def home():
  # 生成数据
  testData = schema.create(iterations=2)
  return testData

运行

 uvicorn main:app

访问http://127.0.0.1:8000/

结果

[
  {
    "id": "aebd4f31-3dfe-4c9d-a3e9-ef3a0b88007a",
    "name": "江燕",
    "version": "1.8.3-rc.1",
    "timestamp": "2020-05-08T22:25:47Z",
    "owner": {
      "email": "boobies1874@test.com",
      "token": "136bfa9e7771842dae3758de2cf5997f0fcfd39b56b6063f11e6123638e7d951",
      "creator": "袭韵 欧"
    },
    "address": {
      "country": "中華民國",
      "province": "青海省",
      "city": "开封市"
    }
  },
  {
    "id": "69ed6ad2-5430-4627-ab36-73c2df4a9ca2",
    "name": "绵恩",
    "version": "4.3.4-alpha.2",
    "timestamp": "2001-11-12T15:29:39Z",
    "owner": {
      "email": "awatch1835@test.com",
      "token": "b352bcc3c446650c2682bfc09a068acc4d0b60583cbb0e241f7fd44d02e43d89",
      "creator": "乐轩 乌"
    },
    "address": {
      "country": "中華民國",
      "province": "陕西省",
      "city": "黄石市"
    }
  }
]

文档 https://mimesis.readthedocs.io/api.html

以上就是python工具——Mimesis的简单使用教程的详细内容,更多关于python Mimesis的使用教程的资料请关注我们其它相关文章!

(0)

相关推荐

  • 详解python使用金山词霸的翻译功能(调试工具断点的使用)

    今天试着用python获取金山词霸的翻译功能,链接在这里: ICIBA传送门 打开之后,界面是这样的,还是比较干净的. 按F12,打开调试工具,选择Network,找到XHR 这里就是查看网络传输的内容.XHR就是不刷新页面的网络传输,就是常说的ajax(阿贾克斯,像是希腊神话里的名字--). 然后我们在翻译窗口写点儿内容,然后点翻译 看,左边的页面出现了翻译结果,右边调试窗口出现了两条数据传输. 两条?那我们选哪条呢?点开看看-- 哦,天哪~两条都是一样的,那我们随便选一条就可以了. 点一下,

  • Python代码覆盖率统计工具coverage.py用法详解

    1.安装coverage pip install coverage 安装完成后,会在Python环境下的\Scripts下看到coverage.exe: 2.Coverage 命令行 coverage run 运行一个.py的文件方式:python test.py 现在使用coverage执行.py的文件方式:coverage run test.py 会自动生成一个覆盖率统计结果文件(data file):.coverage,这个文件在你的test.py的文件对应目录下. coverage re

  • python可视化 matplotlib画图使用colorbar工具自定义颜色

    python matplotlib画图使用colorbar工具自定义颜色 colorbar(draw colorbar without any mapple/plot) 自定义colorbar可以画出任何自己想要的colorbar,自由自在.不受约束,不依赖于任何已有的图(plot/mappable).这里使用的是mpl.colorbar.ColorbarBase类,而colorbar类必须依赖于已有的图. 参数可以参考下面的描述->matplotlib: class matplotlib.co

  • python 实现ping测试延迟的两种方法

    一.python实现ping返回延迟繁琐版 #!/usr/bin/python3.7 # !coding:utf-8 __author__ = 'hsz' __date__ = 'Thu Feb 27 22:41:15 EST 2020' import time import struct import socket import select import sys def chesksum(data): """ 校验 """ n = len(d

  • Python大批量搜索引擎图像爬虫工具详解

    python图像爬虫包 最近在做一些图像分类的任务时,为了扩充我们的数据集,需要在搜索引擎下爬取额外的图片来扩充我们的训练集.搞人工智能真的是太难了

  • python 实现全球IP归属地查询工具

    # 写在前面,这篇文章的原创作者是Charles我只是在他这个程序的基础上边进行加工,另外有一些自己的改造 # 并都附上了注释和我自己的理解,这也是我一个学习的过程. # 附上大佬的GitHub地址:https://github.com/CharlesPikachu/Tools ''' Function: 根据IP地址查其对应的地理信息 Author: Charles 微信公众号: Charles的皮卡丘 ''' import IPy import time import random impo

  • python 实用工具状态机transitions

    说明  1. 状态机是一个非常实用的理论.在涉及到复杂的场景,建立状态机模型,能带来极大的方便.比如,网络连接.模型状态.业务逻辑.  2. 状态机并不复杂, 重要的是它的思想,能够极大减轻复杂度.使用时关键在于定义好事件和动作. 基本概念  State: 状态 Event: 事件. 事件触发状态变换 Action: 动作. event发生前或后执行的动作 transition: 变换. 状态变换 github https://github.com/pytransitions/transitio

  • Python脚本调试工具安装过程

    Pycharm工具 前言 好的学习是离不开一个好的工具,今天分享一下一款用于python脚本编写以及调试的工具--PyCharm Community Edition.正常情况下我们可以从官网下载或者从电脑管家的软件管理中搜索下载,这里提供一下官网下载地址:https://pycharm-community-edition.en.softonic.com/(ps:安装完成后涉及授权期限)不过国内破解版很多,小伙伴们可以自行下载. 本文详细介绍一下,他的安装过程,我是安装两三次才成功,属实非傻瓜式一

  • python如何编写类似nmap的扫描工具

    本文主要是利用scapy包编写了一个简易扫描工具,支持ARP.ICMP.TCP.UDP发现扫描,支持TCP SYN.UDP端口扫描,如下: usage: python scan.py <-p ping扫描类型> <-s 端口发现类型> [-t target] [--port ports] 简单扫描工具,可以进行存活扫描及端口扫描. 存活扫描包括:ARP扫描.ICMP扫描.TCP扫描.UDP扫描. 端口扫描包括:TCP SYN扫描.TCP ACK扫描.TCP FIN扫描. optio

  • python性能测试工具locust的使用

    一.简介 Locust 是一个易于使用,分布式,用户负载测试工具.它用于负载测试 web 站点(或其他系统),并计算出一个系统可以处理多少并发用户.在测试期间,一大群虚拟用户访问你的网站.每个测试用户的行为由您定义,集群过程由 web UI 实时监控.这将帮助您在让真正的用户进入之前进行测试并识别代码中的瓶颈. Locust 完全是基于事件的,因此在一台机器上支持数千个并发用户是可能的.与许多其他基于事件的应用程序不同,它不使用回调.相反它通过 gevent 使用轻量级协程.这允许您用 Pyth

  • Python+unittest+requests+excel实现接口自动化测试框架

    环境:python3 + unittest + requests Excel管理测试用例, HTMLTestRunner生成测试报告 测试完成后邮件发送测试报告 jsonpath方式做预期结果数据处理,后期多样化处理 后期扩展,CI持续集成 发送邮件效果: 项目整体结构: common模块代码 class IsInstance: def get_instance(self, value, check): flag = None if isinstance(value, str): if chec

  • Python Pandas数据分析工具用法实例

    1.介绍 Pandas是基于Numpy的专业数据分析工具,可以灵活高效的处理各种数据集,也是我们后期分析案例的神器.它提供了两种类型的数据结构,分别是DataFrame和Series,我们可以简单粗暴的把DataFrame理解为Excel里面的一张表,而Series就是表中的某一列 2.创建DataFrame # -*- encoding=utf-8 -*- import pandas if __name__ == '__main__': pass test_stu = pandas.DataF

随机推荐