zoukankan      html  css  js  c++  java
  • python工具——Mimesis

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

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

    安装

    pip install mimesis

    eg:

    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(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

  • 相关阅读:
    最长公共子序列算法问题代码(使用JavaScript实现)
    硬币找零问题算法几种不同的代码实现方式(使用Python实现)
    基数排序(使用Python实现)
    桶排序(使用Python实现)
    减法要用 signed 型
    16系列和18系列的不同
    Proteus中常用元器件名字
    数值类型
    PIC单片机之时钟设置
    MOS管使PIC单片机不能正常运行
  • 原文地址:https://www.cnblogs.com/baby123/p/14270661.html
Copyright © 2011-2022 走看看