Cast json avec la clé CamelCase en classe snake_case dans pydantic

Lorsqu'elle est implémentée à l'aide d'une API externe, la valeur de retour de l'API REST peut être un json CamelCase. Par exemple, cela arrive fréquemment lors de l'utilisation d'AWS avec boto3 en Python.

Ce serait un peu un problème compte tenu des normes de codage Python, mais pydantic utilise la fonction ʻalias_generator`. (: //pydantic-docs.helpmanual.io/usage/model_config/#alias-generator) et vous pouvez facilement convertir un type à clé snake_case.

Dans la documentation, j'ai créé ma propre fonction appelée to_camel, mais j'ai une bibliothèque externe ʻinflection` à utiliser dans diverses classes dans les opérations AWS. J'utilise.

from pydantic import BaseModel
from inflection import camelize


class Voice(BaseModel):
    name: str
    language_code: str

    class Config:
        alias_generator = camelize


voice = Voice(**{'Name': 'Filiz', 'LanguageCode': 'tr-TR'})
print(voice.language_code)
#> tr-TR
print(voice.dict(by_alias=True))
#> {'Name': 'Filiz', 'LanguageCode': 'tr-TR'}

référence

Recommended Posts

Cast json avec la clé CamelCase en classe snake_case dans pydantic
Convertir / renvoyer des objets de classe au format JSON en Python
Comment lancer avec Theano
Comment ne pas échapper au japonais en traitant avec JSON en Python
Connectez-vous à Raspberry PI avec ssh sans mot de passe (authentification par clé)
Comment gérer les caractères déformés dans json de Django REST Framework
[Introduction à Python] Comment utiliser la classe en Python?
Convertir des données Excel en JSON avec python
Comment utiliser BigQuery en Python
Classe Trump en Python (avec comparaison)
Erreur de clé de dictionnaire → Résoudre avec la clé dans le dictionnaire
Comment utiliser __slots__ dans la classe Python
Convertir un tableau (struct) en json avec golang
Pour faire fonctionner la station d'horodatage en Python
J'ai essayé de créer une classe qui peut facilement sérialiser Json en Python
[Python] A créé une classe pour jouer des vagues de péché en arrière-plan avec pyaudio