Python 如何打印按键排序的dict?

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

我的用例涉及打印json。为了便于阅读,我想按键排序打印它
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))