假设我有一个由基本字典组成的自定义数据结构,我需要使用JSON进行序列化。我的结构如下:
path_list_dict = {(node1, node2 .. nodeN): (float1, float2, float3)}
因此,这是用一个元组进行键控,并且其值是由三个值组成的元组。 键中的每个节点元素都是一个自定义类对象,具有为其编写的 _str_ 方法。标识路径列表字典中每个字典条目的包装器字典如下:
path_options_dict = {‘Path1’: {(node1, node2 .. nodeN): (float1, float2, float3)}, ‘Path2’: {(nodeA1, nodeA2 .. nodeAN): (floatA1, floatA2, floatA3)} }
等等其他情况。
当我尝试使用JSON进行序列化时,当然会遇到TypeError,因为内部字典具有元组作为键和值,而字典需要将键作为字符串才能进行序列化。这可以通过将str(tuple)表示插入到字典中来轻松解决。
我所关心的是,当我接收它并解压缩值时,我将在接收端拥有所有字符串。内部字典的键元组由自定义类元素组成,现在表示为一个str。我能恢复嵌入式数据吗?还是有更好的方法来做这件事?
为了更清晰地说明,我正在使用此JSON教程作为参考。
__json__
方法,将它们转换为可进行JSON序列化的值,并添加一个类方法来再次从JSON中恢复对象,但是将它们存储在元组中会变得更加复杂。 - Martijn Pieters