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 BeautifulSoup中文乱码问题的2种解决方法
Apr 22 Python
python中 chr unichr ord函数的实例详解
Aug 06 Python
Python编程把二叉树打印成多行代码
Jan 04 Python
运动检测ViBe算法python实现代码
Jan 09 Python
python中使用PIL制作并验证图片验证码
Mar 15 Python
Python机器学习k-近邻算法(K Nearest Neighbor)实例详解
Jun 25 Python
Python 新建文件夹与复制文件夹内所有内容的方法
Oct 27 Python
对Python中TKinter模块中的Label组件实例详解
Jun 14 Python
python 执行终端/控制台命令的例子
Jul 12 Python
python3实现往mysql中插入datetime类型的数据
Mar 02 Python
python 利用toapi库自动生成api
Oct 19 Python
Python之字符串的遍历的4种方式
Dec 08 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
php字符串操作针对负值的判断分析
2016/07/28 PHP
PHP foreach遍历多维数组实现方式
2016/11/16 PHP
jquery学习笔记二 实现可编辑的表格
2010/04/09 Javascript
有趣的JavaScript数组长度问题代码说明
2011/01/20 Javascript
分析Node.js connect ECONNREFUSED错误
2013/04/09 Javascript
js设置cookie过期及清除浏览器对应名称的cookie
2013/10/24 Javascript
js获取指定的cookie的具体实现
2014/02/20 Javascript
jquery实现图片按比例缩放示例
2014/07/01 Javascript
PHP守护进程实例
2015/03/06 Javascript
Function.prototype.apply()与Function.prototype.call()小结
2016/04/27 Javascript
js实现精确到秒的日期选择器完整实例
2016/04/30 Javascript
javascript实现抽奖程序的简单实例
2016/06/07 Javascript
jQuery Easyui加载表格出错时在表格中间显示自定义的提示内容
2016/12/08 Javascript
Bootstrap.css与layDate日期选择样式起冲突的解决办法
2017/04/07 Javascript
微信小程序实现图片上传功能实例(前端+PHP后端)
2018/01/10 Javascript
jquery动态添加以及遍历option并获取特定样式名称的option方法
2018/01/29 jQuery
angular动态表单制作
2018/02/23 Javascript
JavaScript设计模式之建造者模式实例教程
2018/07/02 Javascript
js实现简单的点名器随机色实例代码
2020/09/20 Javascript
[04:04]显微镜下的DOTA2第六期——电影级别的华丽团战
2014/06/20 DOTA
python 数据的清理行为实例详解
2017/07/12 Python
mac下如何将python2.7改为python3
2018/07/13 Python
python 递归调用返回None的问题及解决方法
2020/03/16 Python
Python的scikit-image模块实例讲解
2020/12/30 Python
详解win10下pytorch-gpu安装以及CUDA详细安装过程
2021/01/28 Python
欧缇丽加拿大官方网站:Caudalie加拿大
2019/07/18 全球购物
某IT外企面试题-二分法求方程!看看大家的C++功底
2015/07/04 面试题
高中物理教学反思
2014/02/08 职场文书
销售主管竞聘书
2014/03/31 职场文书
民主评议党员个人总结
2015/02/13 职场文书
经典祝酒词大全
2015/08/12 职场文书
儿童诗两首教学反思
2016/02/23 职场文书
某某店铺的开业庆典主持词范本
2019/11/25 职场文书
SqlServer: 如何更改表的文件组?(进而改变存储位置)
2021/04/05 SQL Server
小米11和iphone12哪个值得买?小米11对比iphone12评测
2021/04/21 数码科技
Mysql systemctl start mysqld报错的问题解决
2021/06/03 MySQL