【发布时间】:2018-04-26 11:20:24
【问题描述】:
注意:这不是简单的双向地图;转换是重要的部分。
我正在编写一个应用程序,它将发送和接收具有特定结构的消息,我必须将其转换为内部结构。
例如消息:
{
"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 的了解还不足以尝试移植。
【问题讨论】:
-
这是一个有趣的问题。我不相信这只是对工具/库的推荐。有一个问题是如何存储/反向转换逻辑无需单独编写正向和反向版本。