Python 如何打印按键排序的dict?
我的用例涉及打印json。为了便于阅读,我想按键排序打印它Python 如何打印按键排序的dict?,python,json,python-3.x,serialization,dictionary,Python,Json,Python 3.x,Serialization,Dictionary,我的用例涉及打印json。为了便于阅读,我想按键排序打印它dict与我的例子中的json一样出现在图片中。loads返回一个dict 我尝试过的事情: dict.\uuu str\uuuu=myStrFn导致TypeError:无法设置 内置/扩展类型“dict”的属性 写myDict,沿着 . 这对我来说不起作用 嵌套字典,因为嵌套字典的类型为dict 而不是myDict 我的选择是什么?我更喜欢使打印(json.loads(json_str))工作的东西。但是可以满足于打印(str_func
dict
与我的例子中的json一样出现在图片中。loads
返回一个dict
我尝试过的事情:
dict.\uuu str\uuuu=myStrFn
导致TypeError:无法设置
内置/扩展类型“dict”的属性
myDict
,沿着
. 这对我来说不起作用
嵌套字典,因为嵌套字典的类型为dict
而不是myDict
打印(json.loads(json_str))
工作的东西。但是可以满足于打印(str_func(json.loads(json_str))
如果您有一个特定于我的json用例的解决方案,那也太好了。但我更喜欢一般的答案。我知道dict
键只需要是可散列的键,而不需要“可比较”(在某种意义上,可能没有总的顺序),因此绝对通用的解决方案可能是不可能的。但我倾向于相信,我们可以为所有有效的JSON类型提供解决方案
我使用的是python3
,速度很快。谢谢。请注意,对于不可序列化为JSON的类型,例如datetime.datetime
@uckelman:确实如此,这将失败。在本例中,原始输入是JSON,提问者将他的问题描述为“打印JSON”,这就是为什么我觉得打印JSON是合适的。如果原始版本不是JSON,我只会建议将其作为替代解决方案,因为JSON语法与Python语法并不完全兼容。谢谢。请注意,对于不可序列化为JSON的类型,例如datetime.datetime
@uckelman:确实如此,这将失败。在本例中,原始输入是JSON,提问者将他的问题描述为“打印JSON”,这就是为什么我觉得打印JSON是合适的。如果原始版本不是JSON,我只会建议将其作为替代解决方案,因为JSON语法与Python语法并不完全兼容。
print(json.dumps(your_dict, sort_keys=True))