2011-05-13 97 views
0

我是Python和web.py(我目前使用的)都是新手,所以請耐心等待。web.py - 如何將db.query(sql)的結果轉換爲字典列表?

the official document

import web 
db = web.database(dbn='postgres', db='mydata', user='dbuser', pw='') 
results = db.query("SELECT COUNT(*) AS total_users FROM users") 
print results[0].total_users # -> prints number of entries in 'users' table 

貌似查詢的結果是字典列表{total_user:NUM}吧?

我的情況非常相似:對數據庫運行一個SELECT,希望得到一個key:value數據列表。

在models.py:

def get_items: 
    return self.db.query("SELECT title FROM news") 

在code.py:

items = model.get_items 
return render.list(items) 

在模板/ list.html:

$def with (items) 
$for item in items: 
    <p>$item.title</p> 

但是,代碼觸發一個錯誤爲「'元組'對象沒有屬性'標題'」。 我做錯了什麼?在此先感謝您的幫助。

+0

看起來''get_items'函數定義和調用中有錯誤。它應該是'def get_items()'和'items = model.get_items()'。 – 2012-07-23 01:39:35

回答

0

它會觸發,因爲你只是從新聞中選擇標題屬性,其中obvioulsy會給出像(a,b,c,d)這樣的元組作爲結果。 如果你想要一個對象作爲結果,做這樣的事情

self.db.query("SELECT * FROM news") 
+0

謝謝阿卜杜勒,但實際上我簡化了查詢以節省空間。在原始查詢中,選擇了多個字段(包括課程名稱),結果仍然相同。請注意,我使用的是MySQLdb。切換到Postgres消除了這個問題 - 結果以正確的字典返回。 – 2011-05-15 04:07:45