我的用例涉及打印json。为了提高易读性,我想按键排序打印。 dict
出现在我的案例中json.loads
会返回dict
。
我尝试的事情:
dict.__str__ = myStrFn
会产生TypeError: can't set
attributes of built-in/extension type 'dict'
按照以下方式写myDict
https://stackoverflow.com/a/931822/438758。这不起作用
嵌套字典,因为嵌套字典的类型为dict
而不是myDict
。
我有什么选择?我更喜欢使print(json.loads(json_str))
起作用的东西。但愿意接受print(str_func(json.loads(json_str)))
。
如果你有一个特定于我的json用例的解决方案,那也会很棒。但我更喜欢一般的答案。我知道dict
密钥只需要hashable
而不是“可比较”(在可能没有总订单的意义上),因此绝对通用的解决方案可能是不可能的。但我倾向于相信我们可以为所有有效的JSON类型提供解决方案。
我正在使用python3
答案 0 :(得分:4)
print(json.dumps(your_dict, sort_keys=True))