通过值对字典进行排序并对其进行字符串化的有效方法

时间:2019-05-30 06:05:02

标签: python json dictionary

我有一个包含字符串键和int值的字典

for word in coocc[query]:
    resp[word]=coocc[query][word]
  

{“份额”:1,“比萨饼”:3,“饮食”:1,...}

我需要按值排序并返回json字符串。

以下作品:

sortedList=sorted(resp.items(), key=operator.itemgetter(1), reverse=True)
sortedDict=collections.OrderedDict(sortedList)
return json.dumps(sortedDict)
  

'{“奶酪”:4,“比萨饼”:3,“桌子”:3,..}

但是对我来说似乎不是很有效

2 个答案:

答案 0 :(得分:0)

json.dumps(sorted(yourdict.items(), key=operator.itemgetter(1),reverse=True))

您可以找到更多详细信息 Here

答案 1 :(得分:0)

Python 3解决方案:

d = {"share": 1, "pizza": 3, "eating": 1,"table": 5, "cheese": 4 }
sorted = dict(sorted(d.items(), key=lambda x: x[1]))
print(sorted)
print (json.dumps(sorted))

输出:

{'share': 1, 'eating': 1, 'pizza': 3, 'cheese': 4, 'table': 5}
{"share": 1, "eating": 1, "pizza": 3, "cheese": 4, "table": 5}

编辑:

import json
d = {"share": 1, "pizza": 3, "eating": 1,"table": 5, "cheese": 4 }
sorted = dict(sorted(d.items(), key=lambda x: x[1], reverse = True))
print(sorted)
print (json.dumps(sorted))

输出:

{'table': 5, 'cheese': 4, 'pizza': 3, 'share': 1, 'eating': 1}
{"table": 5, "cheese": 4, "pizza": 3, "share": 1, "eating": 1}