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


Posted in Python onJanuary 16, 2021

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}')

结果

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

查看 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的使用教程的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python笔记(2)
Oct 24 Python
Python实现同时兼容老版和新版Socket协议的一个简单WebSocket服务器
Jun 04 Python
Python爬虫框架scrapy实现downloader_middleware设置proxy代理功能示例
Aug 04 Python
python事件驱动event实现详解
Nov 21 Python
python实现上传文件到linux指定目录的方法
Jan 03 Python
用Python生成HTML表格的方法示例
Mar 06 Python
Python unittest框架操作实例解析
Apr 13 Python
Python发起请求提示UnicodeEncodeError错误代码解决方法
Apr 21 Python
python之语音识别speech模块
Sep 09 Python
改变 Python 中线程执行顺序的方法
Sep 24 Python
Django web自定义通用权限控制实现方法
Nov 24 Python
python的scipy.stats模块中正态分布常用函数总结
Feb 19 Python
Python 内存管理机制全面分析
Jan 16 #Python
python des,aes,rsa加解密的实现
Jan 16 #Python
python math模块的基本使用教程
Jan 16 #Python
详解Python模块化编程与装饰器
Jan 16 #Python
删除pycharm鼠标右键快捷键打开项目的操作
Jan 16 #Python
基于pycharm 项目和项目文件命名规则的介绍
Jan 15 #Python
python制作抽奖程序代码详解
Jan 15 #Python
You might like
为php4加入动态flash文件的生成的支持
2006/10/09 PHP
FCKeditor的安装(PHP)
2007/01/13 PHP
PHP缓存技术的多种方法小结
2012/08/14 PHP
PHP--用万网的接口实现域名查询功能
2012/12/13 PHP
PHP实现的连贯操作、链式操作实例
2014/07/08 PHP
PHP中读取照片exif信息的方法
2014/08/20 PHP
浅谈PHP解析URL函数parse_url和parse_str
2014/11/11 PHP
模拟电子签章盖章效果的jQuery插件源码
2013/06/24 Javascript
Jquery 返回json数据在IE浏览器中提示下载的问题
2014/05/18 Javascript
解释&amp;&amp;和||在javascript中的另类用法
2014/07/28 Javascript
深入分析escape()、encodeURI()、encodeURIComponent()的区别及示例
2014/08/04 Javascript
javascript动态创建链接的方法
2015/05/13 Javascript
使用AngularJS和PHP的Laravel实现单页评论的方法
2015/06/19 Javascript
基于Bootstrap使用jQuery实现简单可编辑表格
2016/05/04 Javascript
JavaScript String 对象常用方法详解
2016/05/13 Javascript
Underscore之Array_动力节点Java学院整理
2017/07/10 Javascript
vue 里面使用axios 和封装的示例代码
2017/09/01 Javascript
JS库之Waypoints的用法详解
2017/09/13 Javascript
jquery实现点击a链接,跳转之后,该a链接处显示背景色的方法
2018/01/18 jQuery
vue组件编写之todolist组件实例详解
2018/01/22 Javascript
JavaScript引用类型Date常见用法实例分析
2018/08/08 Javascript
element vue Array数组和Map对象的添加与删除操作
2018/11/14 Javascript
关于angular 8.1使用过程中的一些记录
2020/11/25 Javascript
[01:45]2014DOTA2 TI预选赛预选赛 战前探营!
2014/05/21 DOTA
python实现简易版计算器
2020/06/22 Python
python文本数据相似度的度量
2018/03/12 Python
Python使用字典的嵌套功能详解
2019/02/27 Python
django框架ModelForm组件用法详解
2019/12/11 Python
Subside Sports德国:足球球衣和球迷商品
2019/06/08 全球购物
汽车检测与维修个人求职信
2013/09/24 职场文书
毕业生找工作的求职信范文
2013/12/24 职场文书
职务任命书范本
2014/06/05 职场文书
企业人事任命书
2014/06/05 职场文书
钓鱼岛事件感想
2015/08/11 职场文书
班级班风口号大全
2015/12/25 职场文书
团队合作精神学习心得体会
2016/01/19 职场文书