【发布时间】:2015-04-23 10:27:15
【问题描述】:
我正在尝试构建一个数据结构来执行以下操作。
我想要一个看起来像这样的键值对。
{
{"color": "red", "shape": "circle"}: {data: [{}, {}, {}, {}]}
, {"color": "blue", "shape": "square"}: {data: [{}, {}, {}, {}]}
, {"color": "blue", "shape": "circle"}: {data: [{}, {}, {}, {}]}
, {"color": "red", "shape": "square"}: {data: [{}, {}, {}, {}]}
}
我想要的是在颜色为红色、形状为圆形时返回一个 json 样式的 dict 对象。当颜色为蓝色、形状为方形等时,返回不同的 json 样式的 dict 对象。
所以,我的钥匙并不是真正的普通钥匙。它是一种复合键。请推荐
【问题讨论】:
-
JSON 只允许字典中的字符串键。
-
唯一可行的方法是,如果您创建自己的继承内置 dict 类型的类并实现自己的
__hash__函数,但这反过来会导致我认为无论如何,字符串,所以只需遍历字典,如果关键对象是字典,则将其转换为字符串对象。然后,您可能会在说 JavaScript 中循环它,并通过在另一个循环中将其加载到解码器中来将键(字符串)转换为 dict。两步转换或仅在用户定义的类字典中实现__hash__。
标签: python json dictionary