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的Django框架上部署ORM库的教程
Apr 20 Python
Python合并多个装饰器小技巧
Apr 28 Python
介绍Python的Urllib库的一些高级用法
Apr 30 Python
python类装饰器用法实例
Jun 04 Python
在python中使用正则表达式查找可嵌套字符串组
Oct 24 Python
实例讲解Python爬取网页数据
Jul 08 Python
程序员写Python时的5个坏习惯,你有几条?
Nov 26 Python
Python3实现汉语转换为汉语拼音
Jul 08 Python
python的pstuil模块使用方法总结
Jul 26 Python
Python爬虫爬取杭州24时温度并展示操作示例
Mar 27 Python
解决pyinstaller 打包exe文件太大,用pipenv 缩小exe的问题
Jul 13 Python
使用PyCharm官方中文语言包汉化PyCharm
Nov 18 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
剧场版动画《PSYCHO-PASS 3 FIRST INSPECTOR》3月27日日本上映!
2020/03/06 日漫
PHP 的 __FILE__ 常量
2007/01/15 PHP
php实现信用卡校验位算法THE LUHN MOD-10示例
2014/05/07 PHP
浅析Laravel5中队列的配置及使用
2016/08/04 PHP
php reset() 函数指针指向数组中的第一个元素并输出实例代码
2016/11/21 PHP
phalcon model在插入或更新时会自动验证非空字段的解决办法
2016/12/29 PHP
浅谈PHP安全防护之Web攻击
2017/01/03 PHP
Yii2实现ActiveForm ajax提交
2017/05/26 PHP
php写入文件不覆盖的实例讲解
2019/09/17 PHP
php+redis实现消息队列功能示例
2019/09/19 PHP
laravel 解决groupBy时出现的错误 isn't in Group By问题
2019/10/17 PHP
PHP实现抽奖功能实例代码
2020/06/30 PHP
表单项的name命名为submit、reset引起的问题
2007/12/22 Javascript
实现超用户体验 table排序javascript实现代码
2009/06/22 Javascript
jquery的ajax请求全面了解
2013/03/20 Javascript
js的匿名函数使用介绍
2013/12/11 Javascript
为什么JavaScript没有块级作用域
2016/05/22 Javascript
浅谈Javascript中的Label语句
2016/12/14 Javascript
JS库之Three.js 简易入门教程(详解之一)
2017/09/13 Javascript
vue使用@scroll监听滚动事件时,@scroll无效问题的解决方法详解
2019/10/15 Javascript
Python实现MySQL操作的方法小结【安装,连接,增删改查等】
2017/07/12 Python
Python正则表达式非贪婪、多行匹配功能示例
2017/08/08 Python
Python快速排序算法实例分析
2017/11/29 Python
利用python将图片转换成excel文档格式
2017/12/30 Python
python使用Tkinter实现在线音乐播放器
2018/01/30 Python
python3 图片referer防盗链的实现方法
2018/03/12 Python
Python安装图文教程 Pycharm安装教程
2018/03/27 Python
python利用百度云接口实现车牌识别的示例
2020/02/21 Python
工作态度检讨书
2014/02/11 职场文书
软件项目开发计划书
2014/05/01 职场文书
关于保护环境的建议书
2014/05/13 职场文书
社保缴纳证明申请书
2014/11/03 职场文书
医院保洁员岗位职责
2015/02/13 职场文书
2015年档案管理工作总结
2015/04/08 职场文书
幼儿园小班工作总结2015
2015/04/25 职场文书
法律意见书范文
2015/06/04 职场文书