web.py db.insert函数抛出错误:<type'exception.typeerror'=“”>:'long'对象是unsubscriptable </type>

时间:2011-08-06 13:45:27

标签: python mysql sql database web.py

我有一个名为foo的数据库(mysql)表,其主键是bigint类型,并且自动增量, 我编写以下代码来插入记录并获取记录的主键

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

此记录已插入表中,但我收到以下错误:

  

输入'exceptions.TypeError':'long'对象是unsubscriptable

你能帮我解决一下吗?

2 个答案:

答案 0 :(得分:1)

当您尝试将TypeError: '<type>' object is not subscriptable接口用于不支持它的对象时,会出现__getitem__错误。通常看起来像container[...]

看看完整的追溯。在某个地方,您应该看到以这种方式访问​​的对象。由于您没有显示完整的回溯或其他代码,我无法告诉您在哪里。

答案 1 :(得分:0)

我怀疑问题是在打印q中 在web.py

的文档中没有提到它
>>> 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']