Как получить доступ к данным из базы данных с помощью sqlite - PullRequest
1 голос
/ 13 апреля 2020

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

    def select_all_tasks(self):
        # Get the data from Player Table
        self.c.execute("SELECT * FROM PLAYER")
        rows = self.c.fetchall()

        # Change data from tuple to list
        rows = [list(row) for row in rows]

        for row in rows:
            print(row)

Я хочу иметь возможность оценивать данные и сохранять их в переменных, но когда я пытаюсь оценить их как это:

print(rows[1]) / print(rows[1][1])

Я получаю вывод:

None

Мой ожидаемый вывод должен быть:

[x,x,x,x,...]

1 Ответ

0 голосов
/ 13 апреля 2020

Вам не нужно вызывать ненужный list метод для каждого элемента в следующей строке:

rows = [list(row) for row in rows]

Замените вышеприведенное на:

rows = [row for row in rows]

Это преобразует кортежи в список.

Также убедитесь, что ваша функция возвращает rows для доступа к нему.

def select_all_tasks(self):
    .....
    .....
    rows = self.c.fetchall()
    return rows

Ниже приведен пример доступа к нему:

In [514]: tuple_of_tuples = ((1, 2), (2, 3))                                                                                                                                                                

In [515]: tuple_of_tuples                                                                                                                                                                                   
Out[515]: ((1, 2), (2, 3))

In [516]: list_of_tuples = [row for row in tuple_of_tuples]                                                                                                                                                 

In [517]: list_of_tuples                                                                                                                                                                                    
Out[517]: [(1, 2), (2, 3)]

In [518]: list_of_tuples[0]                                                                                                                                                                                 
Out[518]: (1, 2)

In [519]: list_of_tuples[0][0]                                                                                                                                                                              
Out[519]: 1

In [520]: list_of_tuples[0][1]                                                                                                                                                                              
Out[520]: 2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...