Python 가상 데이터 생성하는 Mimesis 라이브러리 알아보기

오늘은 Python에서 가상의 데이터를 무작위 생성해서 데이터베이스 테스트하거나 json, xml 형식의 파일을 만들 수 있는 Mimesis 라이브러리를 알아보려 합니다.

Mimesis 설치

우선 virtualenv로 파이썬 환경을 분리해줍니다.

pip3 install virtualenv
virtualenv -mvenv env

env라는 이름의 가상 환경을 생성합니다.

source env/bin/activate

가상환경을 폴더에서 활성화합니다.

pip3 install --upgrade pip

pip의 업그레이드가 존재하는지 확인하고 진행합니다.

pip install mimesis 

pip로 Mimesis를 설치합니다.

사람 이름

from mimesis import Person
from mimesis.enums import Gender

mimesis에서 Person과 Gender를 가져옵니다.

person = Person('en')

print(person.full_name(gender=Gender.FEMALE))
print(person.full_name(gender=Gender.MALE))

Person으로 사람 이름을 무작위로 생성할 수 있습니다.

이 때에 인자로 언어를 다르게 설정할 수 있으며, gender에 의해 성별이 차이납니다.

언어 설정

from mimesis import Generic

mimesis에서 Generic을 가져옵니다.

generic = Generic('ko')

print(generic.datetime.month())
print(generic.code.imei())
print(generic.food.fruit())

언어를 설정하여 날짜나 음식등을 현지화하여 무작위 생성할 수 있습니다.

지역

from mimesis import Address

mimesis에서 Address를 가져옵니다.

address_ko = Address('ko')

print(address_ko.region())
print(address_ko.federal_subject())
print(address_ko.address())
print(address_ko.address())

주소를 각 언어에 맞게 무작위 생성할 수 있습니다.

시드

from mimesis import Person

mimesis에서 Person을 가져옵니다.

person = Person('ko', seed=0xffff)
print(person.full_name())

시드 값을 지정하여 무작위 값을 고정하여 출력할 수 있습니다.

필드

from mimesis.schema import Field, Schema

mimesis에서 Field, Schema를 가져옵니다.

field = Field('ko')
schema_dict = (lambda: {
    'version': field('version', pre_release=True),
    'timestamp': field('timestamp', posix=False),
    'token': field('token_hex'),
    'owner': {
        'id': field('uuid'),
        'email': field('person.email', key=str.lower)
    },
})
schema = Schema(schema=schema_dict)
print(schema.create(iterations=2))

스키마를 람다로 지정하고, 스키마에 전달하면 create()에 의해 호출됩니다.

iterations의 갯수에 따라 여러개를 생성할 수도 있습니다.

Written on July 3, 2019