web.py db.insert 函数抛出错误:<type 'exceptions.TypeError'>:'long'对象不可下标访问
我有一个名为foo的数据库表(使用mysql),它的主键是bigint类型,并且是自动递增的。我写了以下代码来插入一条记录,并获取这条记录的主键。
q = db.insert('foo', name='bob', age=2, _test=True)
print q
这条记录已经成功插入到表中,但我遇到了以下错误:
类型 'exceptions.TypeError' : 'long'对象不可下标访问
你能帮我看看我该怎么做吗?
2 个回答
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']
1
当你尝试对一个不支持下标访问的对象使用 __getitem__
接口时,就会出现 TypeError: '<type>' object is not subscriptable
这个错误。通常情况下,这种用法看起来像这样 container[...]
。
你可以查看完整的错误追踪信息。在某个地方,你应该能看到以这种方式访问的对象。由于你没有提供完整的错误追踪信息或其他代码,我无法告诉你具体是哪里出错了。