热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python工具——Mimesis

Mimesis是一个用于Python的高性能伪数据生成器, 支持多种不同的语言可以用来生成各种测试数据、假的API、任意结构的JSON、XML数据安装pipinstallmimes

Mimesis是一个用于Python的高性能伪数据生成器, 支持多种不同的语言

可以用来生成各种测试数据、假的 API 、任意结构的 JSON 、XML 数据

安装


pip install mimesis

eg:


from mimesis import Person
person
= Person(zh)
print(fname: {person.surname() + "" + person.name()})
print(fsex: {person.sex()})
print(facademic degree: {person.academic_degree()})
print(foccupation: {person.occupation()})
email
= person.email(domains=[126.com])
print(femail: {email})
phone
= person.telephone(mask=132-8###-5##3)
print(ftelephone: {phone})

结果

技术分享图片

 查看 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: ,
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(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

 


推荐阅读
  • 在Notepad++中配置Markdown语法高亮及实时预览功能
    本文详细介绍了如何在Notepad++中配置Markdown语法高亮和实时预览功能,包括必要的插件安装和设置步骤。 ... [详细]
  • 本文介绍了如何通过安装 sqlacodegen 和 pymysql 来根据现有的 MySQL 数据库自动生成 ORM 的模型文件(model.py)。此方法适用于需要快速搭建项目模型层的情况。 ... [详细]
  • 深入解析Unity3D游戏开发中的音频播放技术
    在游戏开发中,音频播放是提升玩家沉浸感的关键因素之一。本文将探讨如何在Unity3D中高效地管理和播放不同类型的游戏音频,包括背景音乐和效果音效,并介绍实现这些功能的具体步骤。 ... [详细]
  • 本文探讨了一种常见的C++面试题目——实现自己的String类。通过此过程,不仅能够检验开发者对C++基础知识的掌握程度,还能加深对其高级特性的理解。文章详细介绍了如何实现基本的功能,如构造函数、析构函数、拷贝构造函数及赋值运算符重载等。 ... [详细]
  • 随着Linux操作系统的广泛使用,确保用户账户及系统安全变得尤为重要。用户密码的复杂性直接关系到系统的整体安全性。本文将详细介绍如何在CentOS服务器上自定义密码规则,以增强系统的安全性。 ... [详细]
  • 3DSMAX制作超现实的体育馆模型
    这篇教程是向脚本之家的朋友介绍3DSMAX制作超现实的体育馆模型方法,教程制作出来的体育馆模型非常地不错,不过教程有点难度,需要有一定基础的朋友学习,推荐到脚本之家,喜欢的朋友可 ... [详细]
  • 本文介绍了如何在AngularJS应用中使用ng-repeat指令创建可单独点击选中的列表项,并详细描述了实现这一功能的具体步骤和代码示例。 ... [详细]
  • 在项目冲刺的最后一天,团队专注于软件用户界面的细节优化,包括调整控件布局和字体设置,以确保界面的简洁性和用户友好性。 ... [详细]
  • JavaScript 页面卸载事件详解 (onunload)
    当用户从页面离开时(如关闭页面或刷新页面),会触发 onunload 事件,此时可以执行预设的脚本。需要注意的是,不同的浏览器对 onunload 事件的支持程度可能有所不同。 ... [详细]
  • 默认情况下,Git 使用 Nano 编辑器进行提交信息的编辑,但如果您更喜欢使用 Vim,可以通过简单的配置更改来实现这一变化。本文将指导您如何通过修改全局配置文件来设置 Vim 作为默认的 Git 提交编辑器。 ... [详细]
  • 本文介绍了如何通过C#语言调用动态链接库(DLL)中的函数来实现IC卡的基本操作,包括初始化设备、设置密码模式、获取设备状态等,并详细展示了将TextBox中的数据写入IC卡的具体实现方法。 ... [详细]
  • 数据类型--char一、char1.1char占用2个字节char取值范围:【0~65535】char采用unicode编码方式char类型的字面量用单引号括起来char可以存储一 ... [详细]
  • 本文详细介绍了iOS应用的生命周期,包括各个状态及其转换过程中的关键方法调用。 ... [详细]
  • 项目风险管理策略与实践
    本文探讨了项目风险管理的关键环节,包括风险管理规划、风险识别、风险分析(定性和定量)、风险应对策略规划及风险控制。旨在通过系统的方法提升项目成功率,减少不确定因素对项目的影响。 ... [详细]
  • 探索AI智能机器人自动盈利系统的构建
    用户可通过支付198元押金及30元设备维护费租赁AI智能机器人,推荐他人加入可获得相应佣金。随着推荐人数的增加,用户将逐步解锁更高版本,享受更多收益。 ... [详细]
author-avatar
指尖的烟味让我清醒7758_371
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有