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

作者:慕尘 时间:2021-08-06 07:27:23 

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

来源:https://www.cnblogs.com/baby123/p/14270661.html

标签:python,工具,Mimesis,教程
0
投稿

猜你喜欢

  • SQL Server中修改“用户自定义表类型”问题的分析与方法

    2024-01-24 01:13:58
  • MySQL分区表的正确使用方法

    2024-01-29 01:51:26
  • 语义、标准和样式

    2008-06-05 12:52:00
  • 探讨php中防止SQL注入最好的方法是什么

    2023-09-11 14:20:48
  • python3 通过 pybind11 使用Eigen加速代码的步骤详解

    2023-05-13 21:53:18
  • python中os包的用法

    2021-07-11 07:24:02
  • SpringBoot Logback日志记录到数据库的实现方法

    2024-01-16 11:58:11
  • 详解php中反射的应用

    2023-11-15 01:26:56
  • js multiple全选与取消全选实现代码

    2024-04-28 10:19:36
  • 如何用 Python 制作一个迷宫游戏

    2022-03-29 20:44:07
  • 日文片假名导致 Access 搜索“内存溢出”

    2009-07-07 22:23:00
  • python队列Queue的详解

    2022-10-09 16:56:21
  • 白鸦:贪守米缸者,饿死灶台

    2009-02-23 13:03:00
  • jQuery 1.4官方中文手册[译]

    2010-01-20 10:46:00
  • Python SDK实现私服上传下载的示例

    2021-11-22 08:14:42
  • sqlserver 多表查询不同数据库服务器上的表

    2024-01-15 04:56:24
  • Scrapy将数据保存到Excel和MySQL中的方法实现

    2024-01-21 07:02:15
  • webpack的 rquire.context用法实现工程自动化的方法

    2024-05-11 09:05:29
  • python转化excel数字日期为标准日期操作

    2021-01-14 22:38:59
  • 用vuex写了一个购物车H5页面的示例代码

    2024-05-08 10:43:09
  • asp之家 网络编程 m.aspxhome.com