Почему переменная for-loop пропускает каждую вторую строку при итерации по базе данных sqlite? - PullRequest
0 голосов
/ 15 апреля 2019

Я настроил базу данных sqlite, которая записывает некоторые данные о мировой торговле.Я перебираю базу данных и хочу извлечь некоторые данные, которые будут перетекать в другой метод этого класса (работает - без проблем).

Однако, перебирая базу данных, у меня есть две переменные "строка" и "l":

Для строки в базе данных ("..."):
l = self.c.fetchone ()

Странно, половина данных находится в переменной "строка", а другая половина - в "l".Мне потребовалось навсегда, чтобы понять, но теперь я действительно понятия не имею, почему эта проблема происходит?Если я перебираю список / db для «row» - «row» должен иметь все данные для каждой итерации?

Я пытался получить доступ к строке через "row" и "l" различными способами, из нового цикла - переписал циклы и реструктурировал их, но тогда у меня слишком много данных и более 2000 точек входа ???Я использовал fetchmany () - и сделал другой (внешний) цикл для итерации, ...

for row in self.c.execute("SELECT order_number,quotaStart,valid FROM volume"):
            l = self.c.fetchone()
            count+=1
            print(count,">>",row)
            print(count,">>",l)

Я ожидаю, что данные будут доступны через "строку" или "l" - но не половину водна переменная, а другая половина в другой?

1 Ответ

0 голосов
/ 20 апреля 2019

Вы смешиваете 2 разных способа доступа к результатам вашего запроса.Самый простой способ сделать это:

for row in self.c.execute("SELECT order_number,quotaStart,valid FROM volume"):
    print(count, ">>", row)

Или, альтернативно:

self.c.execute("SELECT order_number,quotaStart,valid FROM volume"):
while l = self.c.fetchone():
    print(count, ">>", l)
...