[PYTHON] Présentation de la bibliothèque de création TestData Mimesis

introduction

Il y avait une situation où ce serait bien s'il y avait une grande quantité de données d'entreprise (similaires), et une bibliothèque appelée Mimesis était pratique, alors je vais la présenter.

Cible

Ingénieur front, quiconque veut créer des données de test, quelqu'un qui aime Python python3.6 ou supérieur doit être installé

objectif

Installation jusqu'à ce que vous puissiez générer des données de test JSON simples

Qu'est-ce que Mimesis

Bibliothèque de création de données de test Faker semble être célèbre, mais il semble qu'il n'y ait pas de création de données d'entreprise Avec Mimesis, vous pouvez créer des données d'entreprise, et c'est une étrange page d'accueil Il semble que vous puissiez également créer des données telles que l'adresse IP, j'ai donc essayé de créer des données à l'aide de cette bibliothèque Officiel Mimesis

Installation

L'installation de Mimesis est uniquement pip

$ pip install Mimesis

Je pense toujours que pip est un très bon gars (copype)

Getting Started Facile à utiliser

main.py


import mimesis

#Définir les données de test sur le japonais
g = mimesis.Generic('ja')

#Nom de l'entreprise et type d'entreprise
print("{0} {1}".format(g.business.company_type(), g.business.company()))
# homePage
print(g.internet.home_page())

Lancer et parcourir

Au terminal

$ python main.py 
Denka Seiken Co., Ltd.
https://bantay.moscow

N'est-ce pas un nom d'entreprise qui semble être en quelque sorte?

Sortie sous forme de données JSON

Je vais créer des données de test JSON car c'est un gros problème (Parce qu'il est plus pratique que vous importiez Swagger ou Import)

La source

La source précédente

main.py


import json
from datetime import date, datetime
import mimesis

#Aligner les formats de date et de nombre(Il est pratique de l'avoir lors de la sortie de JSON)
def format_default(obj):
    if isinstance(obj, datetime) or isinstance(obj, date):
        return obj.isoformat()
    if isinstance(obj, decimal.Decimal):
        #S'il n'y a pas de partie fractionnaire, retournez avec Int
        if float(obj).is_integer():
            return int(obj)
        else:
            return float(obj)
    raise TypeError

#Préparez Dict pour que plusieurs éléments puissent être définis
data = []
g = mimesis.Generic('ja')

#Générez plusieurs éléments et définissez-les dans Dict(Changer ici pour le nombre requis
for idx, x in enumerate(range(0, 2)):
    ins_data = {}
    ins_data['company_id'] = idx  # Id
    ins_data['company_name'] = "Co., Ltd.{0}".format(g.business.company())  #Nom de la compagnie
    ins_data['foundation_date'] = g.datetime.formatted_date("%Y/%m")  #Date de création
    ins_data['postal_code'] = g.address.postal_code()  #Code postal
    ins_data['state'] = g.address.state()  #Préfectures
    ins_data['city'] = g.address.city()  #~ ville
    ins_data['street'] = g.address.street_name()  #adresse
    ins_data['home_page'] = g.internet.home_page()  # homepage
    data.append(ins_data)  #Ajouté à Dict

#Formater Dict en JSON et le sortir
print(json.dumps(data, default=format_default, indent=2, ensure_ascii=False))
$ python main.py 
[
  {
    "company_id": 0,
    "company_name": "Groupe financier Mitsubishi UFJ, Inc.",
    "foundation_date": "2003/08",
    "postal_code": "559-9285",
    "state": "Akita",
    "city": "Ville de Matsuyama",
    "street": "Meguro",
    "home_page": "https://trachytes.frl"
  },
  {
    "company_id": 1,
    "company_name": "Daimaru Co., Ltd.",
    "foundation_date": "2004/02",
    "postal_code": "564-0918",
    "state": "Préfecture de Fukushima",
    "city": "Ville d'Ota",
    "street": "Kanamecho",
    "home_page": "https://arvin.tui"
  }
]

Qu'en est-il, c'est amusant de le regarder.

Le reste est comme ça

$ ptyhon main.py > testData.json

Les données de test (JSON) sont créées et utilisées pour les données Swagger et Front Mock.

prime

Enfin, je vais vous présenter les types de données qui peuvent être créés. (Parce qu'il y a d'autres choses intéressantes que vous ne savez pas utiliser

Random id, montant, etc.

Address pays, ville, etc.

Business société, type_entreprise, etc.

Datetime jours, heures, etc.

Food boisson, légume, etc. (C'est intéressant, n'est-ce pas?

Person prénom, email, blood_type, etc.

Text alphabet, réponse, etc.

Development os, version, etc.

File nom_fichier, type_mime, etc.

Hardware cpu, screen_size, etc.

Internet home_page, http_method, ip_v4, etc.

Numbers numéro_complexe, indicateurs (début = 0, fin = 10, n = 10), etc.

Path accueil, racine, etc.

Path accueil, racine, etc.

Recommended Posts

Présentation de la bibliothèque de création TestData Mimesis
Présentation de la bibliothèque d'extensions de palette de couleurs palatable
[Python] Comment utiliser la bibliothèque de création de graphes Altair
Présentation de la configuration de la bibliothèque personnalisée
J'ai essayé la bibliothèque changefinder!