【发布时间】:2014-02-20 11:01:26
【问题描述】:
假设我有一个由原始字典组成的自定义数据结构。我需要使用 JSON 序列化它。我的结构如下:
path_list_dict = {(node1, node2 .. nodeN): (float1, float2, float3)}
所以这是一个元组键,值是三个值的元组。 键中的每个节点元素都是一个自定义类对象,并为其编写了 _str_ 方法。用一个键标识 path_list_dict 中每个 dict 条目的包装 dict 如下:
path_options_dict = {‘Path1’: {(node1, node2 .. nodeN): (float1, float2, float3)}, ‘Path2’: {(nodeA1, nodeA2 .. nodeAN): (floatA1, floatA2, floatA3)} }
等等。
当我尝试使用 JSON 对其进行序列化时,当然会遇到 TypeError,因为内部 dict 将元组作为键和值,而 dict 需要将键作为要序列化的字符串。这可以通过将作为 str(tuple) 表示形式插入到 dict 中而不只是本地元组来轻松解决。
我担心的是,当我收到它并解包值时,我将在接收端拥有所有字符串。由自定义类元素组成的内部 dict 的键元组现在表示为 str。我能恢复嵌入的数据吗?还是这些其他方法可以更好地做到这一点?
为了更清楚,我使用这个JSON tutorial 作为参考。
【问题讨论】:
标签: python json serialization python-3.x