注意:这不是一个简单的双向地图; 转换是重要的部分.
我正在编写一个应用程序,它将发送和接收具有特定结构的消息,我必须将其转换为内部结构.
例如,消息:
{
"Person": {
"name": {
"first": "John",
"last": "Smith"
}
},
"birth_date": "1997.01.12",
"points": "330"
}
Run Code Online (Sandbox Code Playgroud)
这必须转换为:
{
"Person": {
"firstname": "John",
"lastname": "Smith",
"birth": datetime.date(1997, 1, 12),
"points": 330
}
}
Run Code Online (Sandbox Code Playgroud)
反之亦然.
这些消息有很多信息,所以我想避免为两个方向手动编写转换器.有没有办法在Python中指定一次映射,并在两种情况下使用它?
在我的研究中,我发现了一个名为JsonGrammar的有趣的Haskell库,允许这样做(它适用于JSON,但这与案例无关).但是我对Haskell的了解还不足以尝试一个端口.