Skip to main content
 首页 » 编程设计

python之如何按数字顺序打印带有键的 JSON(即,就好像字符串键是整数一样)

2025年05月04日19fff_TT

我有以下 JSON

{ 
    "clips": {  
        "0": { 
            "name": "Please",  
            "id": 1,  
        }, 
        "1": { 
            "name": "Print",  
            "id": 2  
        }, 
        "10": { 
            "name": "me",  
            "id": 3  
        }, 
        "2": { 
            "name": "in order",  
            "id": 4  
        } 
    } 
} 

这是这样制作的:

print(json.dumps(data, sort_keys=True, indent=4)) 这很棒,因为它按字母数字顺序打印键。但是,我需要按实际数字顺序打印这些内容,因此在键 “2” 上方要在键 “10” 之前。

我知道 python 通常不会对字典中的键进行排序,但我需要这样做,因为 json 实际上会被人类读取并且对其进行排序会很棒。谢谢。

请您参考如下方法:

你可以使用字典理解技巧:

import json 
 
d = dict({'2':'two', '11':'eleven'}) 
json.dumps({int(x):d[x] for x in d.keys()}, sort_keys=True) 

输出:

'{"2": "two", "11": "eleven"}'