Ошибка выброса функции web.py db.insert:: «длинный» объект неприемлем - PullRequest
0 голосов
/ 06 августа 2011

У меня есть таблица базы данных (mysql) с именем foo, и ее первичный ключ - тип bigint, и автоинкремент, Я пишу следующие коды, чтобы вставить запись и получить первичный ключ записи

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

эта запись была вставлена ​​в таблицу, но я получил следующую ошибку:

type 'exceptions.TypeError': «long» объект неприемлем для

Можете ли вы помочь мне, что мне делать?

Ответы [ 2 ]

1 голос
/ 06 августа 2011

Вы получаете ошибку TypeError: '<type>' object is not subscriptable при попытке использовать интерфейс __getitem__ для объекта, который его не поддерживает.Обычно это выглядит так: container[...].

Посмотрите на полный трекбек.Где-то вы должны увидеть объект, к которому обращаются таким образом.Так как вы не показали полную трассировку или остальную часть своего кода, я не могу сказать вам, где.

0 голосов
/ 06 августа 2011

Я подозреваю, что проблема в печати 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']
...