Python 按dict值对列表中的dict进行排序

Python 按dict值对列表中的dict进行排序,python,list,sorting,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的DICT进行排序(它只包含数字作为值) 我试过: import

我建立了一个这样的清单

testList = list()
testList.append('{"_id": "%s", "stuff": "%s", "stuff2": "%s", "stuff3": "%s", "stuff4": "%s"}' % (aList["_id"], aList["stuff"], aCount, anotherList, aList["stuff2"]))
现在我想按stuff2对testList的DICT进行排序(它只包含数字作为值)

我试过:

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

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

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

有人能告诉我这个有什么问题吗?我是建立了错误的dicts还是我的排序参数不正确

提前感谢,


Codehai

您添加的字符串不是字典……您可以使用json库将其设置为字典

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

您添加的字符串不是字典…您可以使用json库将其设置为字典

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

您正在追加字符串,而不是字典。
这样做


您正在追加字符串,而不是字典。
这样做


你知道那只是一个大字符串,对吗?(你把你的dict文本放在单引号里,所以现在它是一个字符串。)你的附加字符串不是字典…你知道那只是一个大字符串,对吧?(你把dict文本放在单引号里,所以现在它是一个字符串。)你添加的字符串不是字典…可能比我建议的jsonify更好:P(+1)是的,如果你从互联网上复制粘贴很酷的东西,比如使用占位符,就会发生这种情况:-///谢谢你指出我的失败!可能比我建议的jsonify更好:P(+1)是的,如果你从互联网上复制粘贴很酷的东西,比如使用占位符,就会发生这种情况:-///谢谢你指出我的失败!
testList = list()
testList.append({"_id": aList["_id"], "stuff": aList["stuff"], "stuff2": aCount, "stuff3": anotherList, "stuff4": aList["stuff2"]})