Mimesis是一个用于Python的高性能伪数据生成器, 支持多种不同的语言
可以用来生成各种测试数据、假的 API 、任意结构的 JSON 、XML 数据
安装
1
|
pip install mimesis
|
示例
1
2
3
4
5
6
7
8
9
10
11
|
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}' )
|
结果
查看 Person 对象里面都有什么数据
1
2
3
4
|
from mimesis import Person
from pprint import pprint
person = Person( 'zh' )
pprint( vars (person))
|
数据结构
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
{ '_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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
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
1
2
3
4
5
6
7
8
9
|
from fastapi import FastAPI
from data import schema
app = FastAPI()
@app .get( "/" )
def home():
# 生成数据
testData = schema.create(iterations = 2 )
return testData
|
运行
1
|
uvicorn main:app
|
访问http://127.0.0.1:8000/
结果
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
[
{
"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的使用教程的资料请关注服务器之家其它相关文章!
原文链接:https://www.cnblogs.com/baby123/p/14270661.html