按dict值排序列表中的dicts

时间:2013-07-23 22:42:49

标签: python list sorting

我建立了一个像这样的列表

testList = list()
testList.append('{"_id": "%s", "stuff": "%s", "stuff2": "%s", "stuff3": "%s", "stuff4": "%s"}' % (aList["_id"], aList["stuff"], aCount, anotherList, aList["stuff2"]))

现在我想通过stuff2(仅包含数字作为值)对testList的dicts进行排序

我试过了:

import operator
testList.sort(key=operator.itemgetter(2)

testList.sort(key=lambda x: x["stuff2"])

以及我在网上发现的其他不同解决方案:( 我的列表没有排序或收到

  

TypeError:字符串索引必须是整数排序

有人可以告诉我这个问题是什么?我是否构建错误的dicts或者我的排序参数不正确?

提前致谢,

Codehai

2 个答案:

答案 0 :(得分:3)

您要附加字符串,而不是字典 这样做。

testList = list()
testList.append({"_id": aList["_id"], "stuff": aList["stuff"], "stuff2": aCount, "stuff3": anotherList, "stuff4": aList["stuff2"]})

答案 1 :(得分:1)

你附加一个字符串而不是一个字典....你可以使用json库将它变成一个字典

testList.sort(key=lambda x: json.loads(x)['stuff2'])