我建立了一个像这样的列表
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
答案 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'])