LINUX.ORG.RU

Непредсказуемая выборка из SQLite в Python

 ,


0

1

Здравствуйте! По рекомендациям ЛОРовцев начал изучение SQLite в Python (да и Python тоже только начал изучать). В общем, написал код:

#!/usr/bin/python3

import sqlite3

con = sqlite3.Connection('sqlite.sqlite')
cur = con.cursor()

cur.execute("CREATE TABLE IF NOT EXISTS sqlitetable ( \
    id integer PRIMARY KEY AUTOINCREMENT, \
    col_1 text, \
    col_2 text, \
    col_3 text)")
con.commit()

cur.execute('INSERT INTO sqlitetable VALUES (NULL, "598/25", "Чичиков", "17")')
con.commit()

cur.execute('SELECT * FROM sqlitetable')

row = cur.fetchall()
for rows in row:
    print(row)

cur.close()
con.close()

после запуска в консоли исполняемого файла Три раза подряд, получаю:

[(1, '598/25', 'Чичиков', '17'), (2, '598/25', 'Чичиков', '17'), (3, '598/25', 'Чичиков', '17')]
[(1, '598/25', 'Чичиков', '17'), (2, '598/25', 'Чичиков', '17'), (3, '598/25', 'Чичиков', '17')]
[(1, '598/25', 'Чичиков', '17'), (2, '598/25', 'Чичиков', '17'), (3, '598/25', 'Чичиков', '17')]

хотя ожидаю такой результат:

[(1, '598/25', 'Чичиков', '17'), (2, '598/25', 'Чичиков', '17'), (3, '598/25', 'Чичиков', '17')]

или же такой результат:

[(1, '598/25', 'Чичиков', '17')]
[(2, '598/25', 'Чичиков', '17')]
[(3, '598/25', 'Чичиков', '17')]

Подскажите как достичь ожидаемого результата?

P.S. Еще раз выражаю благодарность Анониму, за то что познакомил меня с консольной версией Sqlite.


Ответ на: комментарий от anonymous

Сколько раз ты запускал этот код?

три раза, я об этом написал в первом сообщении

Gnom7
() автор топика
Последнее исправление: Gnom7 (всего исправлений: 1)
Ответ на: комментарий от anonymous

Даня, у тебя всё хорошо?!..

Я тоже думаю, что дело в

for rows in row:
    print(row)

Подскажите почему он неуместен?

Gnom7
() автор топика
Последнее исправление: Gnom7 (всего исправлений: 1)
Ответ на: комментарий от Gnom7

Уместен, кто я такой что бы говорить, что это не уместно) Результат (согласно вашему же ТЗ) не коректен.

Но как больно глазам это читать вместо:

row.each {|l| p l}
anonymous
()
Ответ на: комментарий от anonymous

Короч, после первой итерации exit(5) ставь и всё, нет времени объяснять.

Получилось, благодарю! Пошел изучать что такое exit(5).

Gnom7
() автор топика
Ответ на: комментарий от anonymous

row.each {|l| p l}

Не могу узнать синтаксис. Гугл говорит что это Ruby.

Gnom7
() автор топика

:)

set(print(ro)for ro in row)

у тебя перепутаны row(строка) и rows(строки)

qulinxao3 ★☆
()

Попроси у чат гопоты поправить ошибки. У тебя цикл неправильно написан

cobold ★★★★★
()

for rows in row:

учи английский, тут яп учить не надо чтоб понять какая глупость написана

peregrine ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.