2011-08-06 26 views
0

我有一個名爲foo的數據庫(mysql)表,它的主鍵是bigint類型,並且自動增加, 我寫了下面的代碼中插入一條記錄並獲得該記錄的主鍵web.py db.insert函數拋出錯誤:<type'exceptions.TypeError'>:'long'object is unsubscriptable

q = db.insert('foo', name='bob', age=2, _test=True) 
print q 

這個紀錄一直插入到表中,但我得到了以下錯誤:

type 'exceptions.TypeError' : 'long' object is unsubscriptable

你能幫忙我該怎麼辦?

回答

1

當您嘗試將__getitem__接口用於不支持它的對象時,會出現TypeError: '<type>' object is not subscriptable錯誤。通常看起來像這樣container[...]

看看完整的回溯。某處,你應該看到一個對象被這樣訪問。既然你沒有顯示完整的回溯或你的代碼的其餘部分,我不能告訴你在哪裏。

0

我懷疑問題出在打印q 它不是在web.py的文檔mentionned

>>> db = DB(None, {}) 
>>> q = db.insert('foo', name='bob', age=2, created=SQLLiteral('NOW()'), _test=True) 
>>> q 
<sql: "INSERT INTO foo (age, name, created) VALUES (2, 'bob', NOW())"> 
>>> q.query() 
'INSERT INTO foo (age, name, created) VALUES (%s, %s, NOW())' 
>>> q.values() 
[2, 'bob']