Aller au contenu principal

JSON - Faker & Mockup

Générez et validez des données JSON avec la librairie Faker de Python et Mockaroo. Apprenez à créer de fausses données pour vos tests et à garantir la qualité des fichiers reçus avec des schémas.

· 4 minutes de lecture
Voir la source
Christophe
Amoureux de Markdown, WSL et Docker ~ Curieux insatiable.
Cet article existe aussi en anglais — lire la version originale.

Traduction automatique

Cette traduction a été produite par une IA. Elle peut contenir des contresens ou des maladresses, en particulier sur les termes techniques. En cas de doute, consultez l'article de référence en anglais — c'est lui qui fait foi.

Journal des modifications

Dernière
Mockaroo was acquired by Tonic.ai (April 2025); service remains operational and free tier (200 API calls/day) is unchanged.

JSON - Faker & Mockup

⚡
TL;DR

Cet article traite de la génération et de la validation de fausses données JSON pour vos tests : utiliser la librairie Faker de Python pour scripter des faux enregistrements sur mesure, utiliser Mockaroo.com (constructeur de schéma + API gratuite) pour générer de gros jeux de données comme 1 000 rows ou plus, et utiliser un convertisseur JSON-vers-schéma en ligne avec la librairie jsonschema de Python pour valider que les fichiers reçus correspondent bien à la structure attendue.

J'ai récemment travaillé sur un projet ETL en Python. Entre autres choses, le script devait traiter des fichiers JSON que les utilisateurs déposaient dans un dossier précis.

Comme il s'agissait d'une application sensible, il était important de valider le script en soumettant de faux fichiers JSON, mais aussi de garantir la qualité des fichiers reçus.

Deux compagnons quand vous travaillez avec du JSON en ligne de commande : L'utilitaire jq pour Linux pour inspecter et filtrer un fichier généré, et Afficher un fichier JSON sous forme de mind map pour saisir d'un coup d'œil la structure d'un fichier inconnu.

Pour les faux fichiers, j'ai utilisé un outil comme la librairie Faker pour Python.

Générer un faux fichier JSON​

L'idée est donc de générer un dictionnaire (un fichier json) avec de fausses données. Avec la librairie Faker, c'est vraiment, vraiment simple.

Installez d'abord la librairie avec pip install faker.

Voici un petit script Python pour générer de fausses données en français (remplacez simplement range(1) par range(100), par exemple, pour obtenir 100 enregistrements) :

fake = Faker()
fake = Faker('fr_FR')
data = []
for _ in range(1):
user = {
'firstname': fake.first_name(),
'lastname': fake.last_name(),
'address': fake.street_address(),
'city': fake.city(),
'country': fake.country(),
'gender': fake.random_element(elements=('Homme', 'Femme', 'Non binaire'))
}
data.append(user)
# Pretty print the JSON data
print(json.dumps(data, indent=4, ensure_ascii=False))

Ce code crée un générateur de données fictives configuré pour le français, puis génère un enregistrement utilisateur avec des informations personnelles aléatoires (prénom, nom, adresse, ville, pays, genre) et affiche le résultat en JSON formaté. La boucle for itère une seule fois pour produire un utilisateur.

Faker in Python

Information

Poursuivez votre lecture avec la documentation officielle de Faker : https://faker.readthedocs.io/en/master/

Utiliser Mockaroo.com​

Le site https://www.mockaroo.com/ permet de créer de fausses données gratuitement (pour accéder à certaines fonctions, vous devrez créer un compte gratuit).

Using Mockaroo

Créer de fausses données à partir d'un schéma​

Après avoir créé un compte gratuit sur Mockaroo, cliquez sur le bouton Schemas, puis sélectionnez Create a schema. Sur l'écran suivant, cliquez sur Generate fields using AI... et collez une chaîne JSON existante :

Creating a schema

Cela fait, vous pourrez générer un grand nombre de rows — par exemple, un fichier avec plus de 1 000 enregistrements.

En sauvegardant les exemples dans un vrai fichier JSON sur le disque, vous pouvez ensuite utiliser ce fichier pour tester votre application.

Utiliser l'API​

En créant un compte gratuit sur Mockaroo, vous pouvez obtenir une clé d'API gratuite (limitée à 200 requêtes/jour).

La documentation de l'API est ici : https://mockaroo.com/docs.

Comme précédemment, cliquez sur le bouton Schemas, créez un schéma et sauvegardez-le.

J'ai créé le schema_test comme ceci :

Mockaroo - Schema test

Je peux ensuite l'utiliser en Python comme ceci :

# My API key as displayed in my profile page on Mockaroo
api_key = "MY_API_KEY"
# This is the name of my schema
schema = "schema_test"
# Number of records I want
num_records = 10
# Construct the API endpoint URL
url = f"https://api.mockaroo.com/api/generate?key={api_key}&count={num_records}&schema={schema}"
# Make the API request
response = requests.get(url)
# Check if the request was successful
if response.status_code == 200:
# Parse the JSON response
data = response.json()
# Display the result on the console
print(data)
else:
print(f"Error fetching data: {response.text}")

Ce script interroge l'API Mockaroo pour générer des données de test. Il construit une URL avec la clé API, le schéma et le nombre d'enregistrements souhaités, envoie la requête HTTP, puis affiche les données reçues ou un message d'erreur selon que la requête a réussi.

Information

Pour que ce code fonctionne, pensez à installer la librairie requests : pip install requests.

En appelant mon script deux fois, j'ai obtenu chaque fois un jeu de données différent :

Calling Mockaroo API

Convertisseur JSON vers schéma en ligne​

Le site https://www.liquid-technologies.com/online-json-to-schema-converter vous permet de copier/coller du JSON existant et d'obtenir un squelette de schéma JSON.

Generate a schema

Une fois le schéma en main, vous pouvez l'utiliser en Python comme ceci :

def validate_json(data_file, schema_file):
with open(schema_file) as f:
schema = json.load(f)
with open(data_file) as f:
data = json.load(f)
jsonschema.validate(instance=data, schema=schema)
data_file = "data.json"
schema_file = "schema.json"
try:
validate_json(data_file, schema_file)
print("Data is valid!")
except jsonschema.exceptions.ValidationError as exception:
print(f"Data is invalid: {exception}")

Cette fonction charge un fichier JSON contenant les données à valider et un fichier JSON contenant le schéma de validation, puis utilise jsonschema pour vérifier que les données respectent le schéma. Le code appelle ensuite cette fonction et capture les erreurs de validation pour les afficher à l'utilisateur.

Information

Vous devrez d'abord lancer pip install jsonschema.

Maintenant, je vais tester mon fichier. La première fois, mon fichier JSON sera correct. J'ai ensuite supprimé l'enregistrement city de mon JSON, et relancer le script échoue bien, comme prévu :

JSON validation

Information

Comme on le voit, très vite, nous avons généré 1 000 enregistrements et, aussi, un schéma de validation. Puis, en quelques lignes de Python, nous nous sommes assurés que le fichier est correct ou, sinon, nous avons repéré où se trouve l'erreur.

D'autres outils JSON à connaître : afficher un fichier JSON sous forme de carte mentale et linter/valider vos fichiers JSON.


Cet article vous a-t-il été utile ?
Avez-vous suivi les étapes de cet article ?