2013-07-23 36 views
1

我建立這樣的某種類型的字典值

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

列表現在我想testList的類型的字典由stuff2(只包含數字作爲值)

我試圖排序:

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

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

和不同的其他解決方案,我發現所有網站上:( 我的列表不進行排序或我收到

TypeError: string indices must be integers sorting

有人可以告訴我什麼是這一個問題?我建立錯誤的字典還是我的排序參數不正確?

由於提前,

Codehai

+2

你知道這只是一個大字符串,對嗎? (你把你的字典換成了單引號,所以現在它是一個字符串。) – DaoWen

+0

你附加一個字符串不是字典.... –

回答

3

要附加的字符串一本字典,不是字典。
這樣做。

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

可能比我的建議,以jsonify它:P(+1) –

+0

是啊,這是什麼如果你複製粘貼很酷的東西就像從互聯網佔位符工作: -////謝謝指出我的失敗! – Codehai

1

你追加一個字符串不是字典....你可以把它使用JSON庫

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