Mimesis是一个用于Python的高性能伪数据生成器
Mimesis是一个用于Python的高性能伪数据生成器,它以各种语言为各种目的提供数据。
模拟-假数据发生器
Description
Mimesis是一个用于Python的high-performance伪数据生成器,它用各种语言为各种目的提供数据。这些假数据可以用来填充测试数据库,创建假API端点,创建任意结构的JSON和XML文件,匿名化从生产中获取的数据等等。
主要特点是:
性能:Python可用的最快的数据生成器。
可扩展性:您可以创建自己的数据提供程序,并将其用于模拟。
通用数据提供程序:从单个对象对所有提供程序的简化访问。
多语言:支持多种语言的数据。
数据多样性:支持多种用途的数据提供程序。
Schema-based生成器:提供了一种简单的机制,可以通过任何复杂的模式生成数据。
Country-specific数据提供程序:仅为某些国家/地区提供特定数据。
Installation
要安装mimesis,只需使用pip:
[venv] ~ ⟩ pip install mimesis
Usage
这个库非常容易使用,您所需要的一切只是导入一个表示您所需数据类型的对象(我们称之为这种对象提供程序)。
在下面的示例中,我们导入provider Person,它表示与个人信息相关的数据,例如姓名、姓氏、电子邮件等:
>>> from mimesis import Person
>>> person = Person('en')
>>> person.full_name()
'Brande Sears'
>>> person.email(domains=['mimesis.name'])
'[email protected]'
>>> person.email(domains=['mimesis.name'], unique=True)
'[email protected]'
>>> person.telephone(mask='1-4##-8##-5##3')
'1-436-896-5213'
关于其他提供商的更多信息,请参阅我们的文档。
Locales
Mimesis目前支持34种不同的语言环境。您可以在创建提供程序时指定一个区域设置,它们将返回与该区域设置关联的语言或国家/地区相适应的数据。
让我们看看它是如何工作的:
>>> from mimesis import Person
>>> from mimesis.enums import Gender
>>> de = Person('de')
>>> en = Person('en')
>>> de.full_name(gender=Gender.FEMALE)
'Sabrina Gutermuth'
>>> en.full_name(gender=Gender.MALE)
'Layne Gallagher'
Providers
有关详细信息,请参阅API参考。
生成结构化数据
您可以生成可以轻松转换为任何格式(JSON/XML/YAML等)的字典,该格式具有您想要的任何结构。
让我们构建一个虚拟的API端点,使用Flask来说明这个想法:
from flask import Flask, jsonify, request
from mimesis.schema import Field, Schema
from mimesis.enums import Gender
app = Flask(__name__)
@app.route('/apps', methods=('GET',))
def apps_view():
locale = request.args.get('locale', default='en', type=str)
count = request.args.get('count', default=1, type=int)
_ = Field(locale)
schema = Schema(schema=lambda: {
'id': _('uuid'),
'name': _('text.word'),
'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)},
})
data = schema.create(iterations=count)
return jsonify(data)
在下面的屏幕截图中,您可以看到来自这个伪API(/apps
)的响应:
有关详细信息,请参见架构和字段。
Documentation
您可以在阅读文档上找到完整的文档。
它分为几个部分:
Foreword
Getting Started
提示和技巧
API Reference
Contributing
Changelog