язык: Python 3.7.0 mysql-коннектор-python == 8.0.31
Я работаю над веб-сайтом и только что внедрил базу данных. Ответ, который я получаю от базы данных, выглядит так:
[('indigo', 'admin')]
Как извлечь два значения из кортежа в списке и преобразовать их только в список?
Ожидаемый результат:
["indigo", "admin"]
Спасибо,
индиго
Использовать распаковку кортежа
response = [('indigo', 'admin')]
data = [*response[0]]
print(data)
Выход: ['indigo', 'admin']
Для этого очень конкретного примера вы можете просто получить доступ к первому элементу списка a = [('indigo', 'admin')]
через your_tuple = a[0], который возвращает your_tuple = ('indigo', 'admin')
. Затем этот кортеж можно преобразовать в список с помощью list(your_tuple)
.
В общем, лучше не делать эти шаги между ними. Я просто назвал их более педагогическими. Вы получаете желаемый результат с помощью:
list(a[0])
вы можете получить доступ к первому элементу исходного списка [('indigo', 'admin')]
(у него только один элемент), чтобы получить кортеж. затем используйте функцию list
, чтобы преобразовать кортеж в список.
Ваш ответ может быть улучшен с помощью дополнительной вспомогательной информации. Пожалуйста, отредактируйте , чтобы добавить дополнительные сведения, такие как цитаты или документация, чтобы другие могли подтвердить правильность вашего ответа. Вы можете найти больше информации о том, как писать хорошие ответы в справочном центре.
Вы можете использовать:
response=[('indigo', 'admin')]
data=[response[0][i] for i in [0,1]]
data
Вывод
['indigo', 'admin']
Спасибо вам, это работает. Однако под ответом красная строка с комментарием: Объект типа «Нет» не подлежит подписке. Я подозреваю, что это связано с тем, что python не знает, что вернет база данных, и поэтому может предположить, что это может быть None. Есть ли способ исправить это?
Вместо
fetchall()
называтьfetchone()
?