Taggué : python

JSON Schema

JSON Schema permet de définir vos formats de données JSON et permet de les valider. C’est assez pratique pour gérer la validation des données d’une API par exemple. Je m’en sert par exemple pour valider des données avant de les insérer dans une base MongoDB.

Il existe des implémentations pour quasiment tous les langages. J’ai utilisé par exemple jsonschema pour Python : https://github.com/Julian/jsonschema

C’est assez souple à utiliser et on peut étendre facilement les fonctionnalités. Par exemple pour valider un champ objectid, qui est le type de données par défaut utilisé par MongoDB pour stocker les id :

from bson.objectid import ObjectId
from jsonschema import Draft4Validator, validate, ValidationError, SchemaError

def json_validator(schema):

    types = {"objectid" : ObjectId}
    validator = Draft4Validator(
        schema=schema,
        types=types
    )
    return validator

validator = json_validator({"_id": "objectid"})
json_data = {"_id": ObjectId("51f4ac14261caf41e8485ce9")}
if validator.is_valid(json_data):
    # ...
else:
    for error in sorted(validator.iter_errors(json_data), key=str):
        print('{} : {}'.format(schema_path_str(error.path), error.message))

Créer une arborescence de fichiers mp3 en python

Après une récupération d’une grande quantité de mp3 (légale) sur un site, j’ai du faire un script pour renommer automatiquement les fichiers et recréer une arborescence en fonction des tags des fichiers mp3. Suite au téléchargement, tous le fichiers étaient dans le même dossier et portaient un nom du type download_1523645.php.

Lire la suite