[PYTHON] Wirf json mit dem Schlüssel CamelCase in die Klasse snake_case in pydantic

Bei der Implementierung mit einer externen API kann der Rückgabewert der REST-API ein CamelCase-JSON sein. Beispielsweise kommt es häufig vor, wenn AWS mit boto3 in Python betrieben wird.

Das wäre angesichts der Python-Codierungsstandards ein kleines Problem, aber pydantic verwendet die Funktion alias_generator. (: //pydantic-docs.helpmanual.io/usage/model_config/#alias-generator) und Sie können problemlos in einen Typ mit Schlangenfall umwandeln.

In der Dokumentation habe ich meine eigene Funktion namens "to_camel" erstellt, aber ich habe eine externe Bibliothek "Flexion" zur Verwendung in verschiedenen Klassen in AWS-Operationen. Ich benutze.

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'}

Referenz

Recommended Posts

Wirf json mit dem Schlüssel CamelCase in die Klasse snake_case in pydantic
Konvertieren / Zurückgeben von Klassenobjekten in das JSON-Format in Python
Wie man mit Theano besetzt
Wie man Japanern nicht entgeht, wenn man mit json in Python umgeht
Melden Sie sich mit ssh ohne Passwort bei Raspberry PI an (Schlüsselauthentifizierung)
Wie man mit verstümmelten Charakteren in json von Django REST Framework umgeht
[Einführung in Python] Wie verwende ich eine Klasse in Python?
Konvertieren Sie Excel-Daten mit Python in JSON
So arbeiten Sie mit BigQuery in Python
Trump-Klasse in Python (mit Vergleich)
Wörterbuchschlüsselfehler → Mit Schlüssel in dicionary beheben
Verwendung von __slots__ in der Python-Klasse
Konvertieren Sie ein Array (struct) mit golang in json
So betreiben Sie die Zeitstempelstation in Python
Ich habe versucht, eine Klasse zu erstellen, mit der Json in Python problemlos serialisiert werden kann
[Python] Erstellt eine Klasse, um mit pyaudio Sinuswellen im Hintergrund zu spielen