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中使用正则表达式的方法
Aug 13 Python
Pyspider中给爬虫伪造随机请求头的实例
May 07 Python
tensor和numpy的互相转换的实现示例
Aug 02 Python
Python实现代码统计工具
Sep 19 Python
Python Des加密解密如何实现软件注册码机器码
Jan 08 Python
python实现FTP文件传输的方法(服务器端和客户端)
Mar 20 Python
Python如何输出百分比
Jul 31 Python
pandas 数据类型转换的实现
Dec 29 Python
Python一行代码实现自动发邮件功能
May 30 Python
Python实现照片卡通化
Dec 06 Python
Python尝试实现蒙特卡罗模拟期权定价
Apr 21 Python
python数字图像处理数据类型及颜色空间转换
Jun 28 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中0,null,empty,空,false,字符串关系的详细介绍
2013/06/20 PHP
PHP遍历目录并返回统计目录大小
2014/06/09 PHP
PHP实现远程下载文件到本地
2015/05/17 PHP
php准确获取文件MIME类型的方法
2015/06/17 PHP
屏蔽PHP默认设置中的Notice警告的方法
2016/05/20 PHP
PHP验证终端类型是否为手机的简单实例
2017/02/07 PHP
yii框架无限极分类的实现方法
2017/04/08 PHP
jQuery load方法用法集锦
2011/12/06 Javascript
javascript判断iphone/android手机横竖屏模式的函数
2011/12/20 Javascript
单击复制文字兼容各浏览器的完美解决方案
2013/07/04 Javascript
判断一个变量是数组Array类型的方法
2013/09/16 Javascript
javascript的parseFloat()方法精度问题探讨
2013/11/26 Javascript
js日期范围初始化得到前一个月日期的方法
2015/05/05 Javascript
jQuery获取checkboxlist的value值的方法
2015/09/27 Javascript
AngularJS中的$watch(),$digest()和$apply()区分
2016/04/04 Javascript
javascript cookie用法基础教程(概念,设置,读取及删除)
2016/09/20 Javascript
jQuery插件FusionCharts实现的2D柱状图效果示例【附demo源码下载】
2017/03/06 Javascript
JavaScript函数节流的两种写法
2017/04/07 Javascript
Vue学习笔记进阶篇之多元素及多组件过渡
2017/07/19 Javascript
js中apply与call简单用法详解
2017/11/06 Javascript
vue 中 beforeRouteEnter 死循环的问题
2019/04/23 Javascript
es6中new.target的作用和使用场景简单示例分析
2020/03/14 Javascript
python使用7z解压软件备份文件脚本分享
2014/02/21 Python
Python实现的下载8000首儿歌的代码分享
2014/11/21 Python
python获取mp3文件信息的方法
2015/06/15 Python
Python干货:分享Python绘制六种可视化图表
2018/08/27 Python
Django的models模型的具体使用
2019/07/15 Python
pymongo insert_many 批量插入的实例
2020/12/05 Python
阿根廷旅游网站:almundo阿根廷
2018/02/12 全球购物
艺龙旅行网酒店预订:国内、港澳台酒店
2018/06/26 全球购物
优质美利奴羊毛袜,不只是徒步旅行:Darn Tough Vermont
2018/11/05 全球购物
关于运动会的稿件
2014/02/02 职场文书
促销活动总结
2014/04/28 职场文书
市级绿色学校申报材料
2014/08/25 职场文书
学生检讨书怎么写
2014/10/09 职场文书
关于党风廉政建设宣传教育月的活动总结!
2019/08/08 职场文书