【发布时间】:2015-04-23 23:21:26
【问题描述】:
我的用例涉及打印 json。为了便于阅读,我想按键排序打印它。 dict 出现在图片中,因为在我的情况下 json.loads 返回一个 dict。
我尝试过的事情:
dict.__str__ = myStrFn导致TypeError: can't set attributes of built-in/extension type 'dict'写
myDicthttps://stackoverflow.com/a/931822/438758。这不适用于 嵌套字典,因为嵌套字典的类型为dict而不是myDict。
我在这里有什么选择?我更喜欢能让print(json.loads(json_str)) 工作的东西。但会满足于print(str_func(json.loads(json_str)))。
如果您有针对我的 json 用例的解决方案,那也太好了。但我更喜欢一个通用的答案。我知道 dict 键只需要是 hashable 而不是“可比较的”(从某种意义上说可能没有总顺序),因此可能不可能有一个绝对通用的解决方案。但我倾向于相信我们可以为所有有效的 JSON 类型提供解决方案。
我正在使用python3
【问题讨论】:
标签: python json python-3.x serialization dictionary