Преобразование sqlite3.cursor в int PYTHON

Я пытаюсь вернуть идентификатор INT из определенной таблицы в моей базе данных, когда я пытаюсь это сделать.

retrieveID = "SELECT id FROM posts WHERE usernick=?"
latestPost = cursor.execute(retrieveID,(usernick, ))
if latestPost:
    return latestPost
else:
    return None

я возвращаюсь

AssertionError: <class 'int'> != <class 'sqlite3.Cursor'> error

Я пытаюсь проверить это на веб-тесте.

Я также пробовал

int(cursor.execute(retrieveID, (usernick,))

Но я не могу преобразовать курсор в in. Мне было интересно, есть ли способ сделать это, и если нет, как мне решить эту проблему.


person NubmcNub    schedule 18.05.2015    source источник
comment
В отличие от форумов, мы не используем слова «Спасибо» или «Любая помощь приветствуется» или подписи на Stack Overflow. См. раздел Должен ли быть "Привет", "спасибо" слоганов и приветствий удалить из постов?. Кстати, это заранее спасибо, а не спасибо заранее.   -  person John Saunders    schedule 23.05.2015


Ответы (1)


Сначала вы должны получить элемент из курсора, например.

cursor.execute(...)
post_id = cursor.fetchone()[0]

или используйте cursor.fetchall(), если для этого запроса много строк

cursor.execute(...)
for row in cursor.fetchall():
    post_id = row[0]
person bakkal    schedule 18.05.2015
comment
Большое вам спасибо :) вы можете просто ответить мне на одну вещь? курсор.fetchone()[0] что означает «[0]»? - person NubmcNub; 18.05.2015
comment
Вы можете видеть его как одну строку, содержащую множество столбцов, поэтому вы читаете первый столбец строки, возвращенный запросом (ваш запрос возвращает только один столбец). - person bakkal; 18.05.2015