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实现SMTP发送邮件详细教程
Mar 02 Python
python 按不同维度求和,最值,均值的实例
Jun 28 Python
Python两台电脑实现TCP通信的方法示例
May 06 Python
python版百度语音识别功能
Jul 09 Python
Python 画出来六维图
Jul 26 Python
Python socket聊天脚本代码实例
Jan 02 Python
linux 下python多线程递归复制文件夹及文件夹中的文件
Jan 02 Python
基于Python实现人脸自动戴口罩系统
Feb 06 Python
python3.6.5基于kerberos认证的hive和hdfs连接调用方式
Jun 06 Python
selenium+headless chrome爬虫的实现示例
Jan 08 Python
Python 文本滚动播放器的实现代码
Apr 25 Python
pytorch 预训练模型读取修改相关参数的填坑问题
Jun 05 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
java模拟PHP的pack和unpack类
2016/04/13 PHP
Ubuntu server 11.04安装memcache及php使用memcache来存储session的方法
2016/05/31 PHP
php实现的pdo公共类定义与用法示例
2017/07/19 PHP
Laravel5.4框架中视图共享数据的方法详解
2019/09/05 PHP
javascript 关闭IE6、IE7
2009/06/01 Javascript
Tab页界面 用jQuery及Ajax技术实现(php后台)
2011/10/12 Javascript
jQuery当鼠标悬停时放大图片的效果实例
2013/07/03 Javascript
jquery实现简单易懂的图片展示小例子
2013/11/21 Javascript
javascript页面动态显示时间变化示例代码
2013/12/18 Javascript
jquery.validate.js插件使用经验记录
2014/07/02 Javascript
Internet Explorer 11 浏览器介绍:别叫我IE
2014/09/28 Javascript
js上下视差滚动简单实现代码
2017/03/07 Javascript
教你快速搭建Node.Js服务器的方法教程
2017/03/30 Javascript
Vue.js基础指令实例讲解(各种数据绑定、表单渲染大总结)
2017/07/03 Javascript
浅谈Vue父子组件和非父子组件传值问题
2017/08/22 Javascript
详解如何在微信小程序开发中正确的使用vant ui组件
2018/09/13 Javascript
jQuery事件委托代码实践详解
2019/06/21 jQuery
解决vue项目打包上服务器显示404错误,本地没出错的问题
2020/11/03 Javascript
python获取目录下所有文件的方法
2015/06/01 Python
Python随手笔记第一篇(2)之初识列表和元组
2016/01/23 Python
Django跨域请求CSRF的方法示例
2018/11/11 Python
妙用itchat! python实现久坐提醒功能
2019/11/25 Python
如何基于python实现不邻接植花
2020/05/01 Python
是什么让J2EE适合用来开发多层的分布式的应用
2015/01/16 面试题
师范毕业生求职自荐信
2013/09/25 职场文书
英文翻译的自我评价语句
2013/10/04 职场文书
高级电工工作职责
2013/11/21 职场文书
外贸业务员的岗位职责
2013/11/23 职场文书
优秀电子工程系毕业生求职信
2014/05/24 职场文书
拉拉队口号
2014/06/16 职场文书
群众路线教育实践活动个人对照检查材料思想汇报(社区班子)
2014/10/06 职场文书
忠诚与背叛观后感
2015/06/04 职场文书
Pyhton模块和包相关知识总结
2021/05/12 Python
浅谈Java父子类加载顺序
2021/08/04 Java/Android
css filter和getUserMedia的联合使用
2022/02/24 HTML / CSS
Tomcat弱口令复现及利用
2022/05/06 Servers