1

我建立了一个这样的列表

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是错误的还是我的排序参数不正确?

提前致谢,

码海

4

2 回答 2

3

您正在附加字符串,而不是字典。
做这个。

testList = list()
testList.append({"_id": aList["_id"], "stuff": aList["stuff"], "stuff2": aCount, "stuff3": anotherList, "stuff4": aList["stuff2"]})
于 2013-07-23T22:48:41.723 回答
1

您附加的字符串不是字典....您可以使用 json 库将其设为字典

testList.sort(key=lambda x: json.loads(x)['stuff2'])
于 2013-07-23T22:47:51.437 回答