我来自Java背景,在Java中可以将json序列化/反序列化到域模型中,如下所示:
{
"id1": {
"seq001": {
"curr_seq": "seq001",
"partition": "2014-05-16",
"last_send": true
},
"seq002": {
"curr_seq": "seq0012",
"partition": "2014-05-167",
"last_send": true
}
..
}
}
Java Json解析器可以直接反序列化为域模型,如下所示:
Map<String, Map<String, DatasetEnode>> idToSeqIdToDatasetNodeMap = OM.readValue(..)
我想在Python中做一些类似的事情,如下所示:
域类:
@dataclass(frozen=False)
class DatasetNode:
curr_seq: str
partition: str
last_send: bool
首先解析Json:
raw_map: dict = json.load(json_str) #result is dict[str,dict[str,dict]]
现在我想要一些转换器方法,如下所示:
1将原始dict转换为数据类对象的dict:
typed_map: dict[str, dict[str, DatasetNode]] = to_typed(raw_map)
2将数据类对象的dict转换为原始dict
raw_map: dict = to_raw(typed_map)
这是否可以在几行中完成,而不是编写长方法
正如前面所说的,在使用Python时,您不应该用Java术语进行思考——在您看来,Python中没有任何东西是“类型化”的。 无论如何,尽管没有内置程序来执行您描述的任务,但这里有两个一行程序,它们将通过双字典完成这项工作
“原始”
dict
到“对象”dict
:“对象”
dict
到“原始”dict
:相关问题 更多 >
编程相关推荐