Примечание: это не простая двухсторонняя карта; преобразование является важной частью.
Я пишу приложение, которое будет отправлять и получать сообщения с определенной структурой, которые я должен преобразовать из и во внутреннюю структуру.
Например, сообщение:
{
"Person": {
"name": {
"first": "John",
"last": "Smith"
}
},
"birth_date": "1997.01.12",
"points": "330"
}
Это необходимо преобразовать в:
{
"Person": {
"firstname": "John",
"lastname": "Smith",
"birth": datetime.date(1997, 1, 12),
"points": 330
}
}
И наоборот.
Эти сообщения содержат много информации, поэтому я хочу избежать необходимости вручную записывать конвертеры для обоих направлений. Есть ли способ в Python указать отображение один раз и использовать его для обоих случаев?
В своем исследовании я нашел интересную библиотеку Haskell под названием JsonGrammar, которая позволяет это (это для JSON, но это не имеет значения для случая). Но мои знания о Haskell недостаточно хороши, чтобы попробовать порт.