python工具——Mimesis的簡單使用教程

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}')

結果

查看 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": "[email protected]",
      "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": "[email protected]",
      "token": "b352bcc3c446650c2682bfc09a068acc4d0b60583cbb0e241f7fd44d02e43d89",
      "creator": "樂軒 烏"
    },
    "address": {
      "country": "中華民國",
      "province": "陜西省",
      "city": "黃石市"
    }
  }
]

文檔 https://mimesis.readthedocs.io/api.html

以上就是python工具——Mimesis的簡單使用教程的詳細內容,更多關於python Mimesis的使用教程的資料請關註WalkonNet其它相關文章!

推薦閱讀: