Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.4 JSON按键排序为int_Python_Json_Sorting_Python 3.x_Key - Fatal编程技术网

Python 3.4 JSON按键排序为int

Python 3.4 JSON按键排序为int,python,json,sorting,python-3.x,key,Python,Json,Sorting,Python 3.x,Key,我在互联网上搜索了半天,虽然我一直在接近,但总是略有不同。我的目标是获取一个JSON子元素列表,并按该键对它们进行排序。除了键是字符串的数字。示例: print (json_reply['top']['sub']) 让我明白: 所以我试着从互联网上找到的信息中对其进行分类 sorted_reply = (sorted(json_reply['top']['sub'].items())) 让我明白: 不同但相近。现在它似乎不是JSON(它不是很大,因为我仍然可以使用它),但是你可以看到10紧接

我在互联网上搜索了半天,虽然我一直在接近,但总是略有不同。我的目标是获取一个JSON子元素列表,并按该键对它们进行排序。除了键是字符串的数字。示例:

print (json_reply['top']['sub'])
让我明白:

所以我试着从互联网上找到的信息中对其进行分类

sorted_reply = (sorted(json_reply['top']['sub'].items()))
让我明白:

不同但相近。现在它似乎不是JSON(它不是很大,因为我仍然可以使用它),但是你可以看到10紧接着一。我猜是因为它认为它是一根弦。我也尝试过JSON排序方法,但结果是一样的,只是JSON格式。我不断发现的主题是人们希望对值进行排序,而不是对键进行排序。我已经尝试过尽可能地改变给定的解决方案,但它们不起作用


那么,我怎样才能把这些键当作整数而不是字符串来排序,这样“10”就在最后了。不管它是否保持JSON格式。

给它一个sort
,一个应用于每个元素以提供排序值的函数:

sorted(json_reply['top']['sub'].items(), key=lambda i: int(i[0]))
演示:


给它一个sort
,这是一个应用于每个元素的函数,用于提供排序所依据的值:

sorted(json_reply['top']['sub'].items(), key=lambda i: int(i[0]))
演示:


你就是那个人!,我向你鞠躬,先生!你就是那个人!,我向你鞠躬,先生!
sorted(json_reply['top']['sub'].items(), key=lambda i: int(i[0]))
>>> d = {'9': 800, '1': 800, '3': 800, '8': 800, '6': 800, '5': 800, '7': 800, '10': 700, '4': 800, '2': 800}
>>> sorted(d.items(), key=lambda i: int(i[0]))
[('1', 800), ('2', 800), ('3', 800), ('4', 800), ('5', 800), ('6', 800), ('7', 800), ('8', 800), ('9', 800), ('10', 700)]