Почему результат набора записей возвращается таким образом для запроса к базе данных Python? - PullRequest
3 голосов
/ 27 апреля 2010

Я искал все выше и ниже, чтобы найти ответ на вопрос, почему результаты запроса возвращаются в этом формате и как их преобразовать в список.

data = cursor.fetchall ()

Когда я печатаю данные, это приводит к: ((«автомобиль»,), («лодка»,), («самолет»,), («грузовик»,))

Я хочу получить результаты в списке как ["автомобиль", "лодка", "самолет", "грузовик"]

Ответы [ 3 ]

5 голосов
/ 27 апреля 2010

Он возвращает его таким образом, потому что набор записей состоит из множества строк данных, а не списка отдельных элементов.

Вы можете сгладить его, если хотите использовать понимание списка:

data = [row[0] for row in cursor.fetchall()]
1 голос
/ 27 апреля 2010

Результат для fetchall () возвращает массив строк, где каждая строка является массивом с одним значением на столбец.

Даже если вы выбираете только один столбец, вы все равно получите массив массивов, но только одно значение для каждой строки.

0 голосов
/ 27 апреля 2010
x = (('car',), ('boat',), ('plane',), ('truck',))

y = [z[0] for z in x] # ['car', 'boat', 'plane', 'truck']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...