Как мне получить «чистую» строку из MySQL?

0

Я запускаю этот код в python 3.6 (pythonanywhere.com), используя MySQL

import MySQLdb

conn = MySQLdb.connect('username.mysql.pythonanywhere-services.com', 'username', 'password', 'username$to_do')

c = conn.cursor()
c.execute('SELECT task FROM list')
rows = c.fetchall()
list_em = []
number = 0

for eatchRow in rows:
    list_em.append(eatchRow)
    print("nr %s: %s" % (number, list_em[number]))
    number += 1
del1 = int(input("Chose the number of the list item you want to delete: "))
delstatmt = "DELETE FROM list WHERE task = ?"
print (list_em[del1])
#c.execute(delstatmt, (list_em[del1],))

Я создаю список под названием "list_em" и заполняю содержимое из столбца "task" в таблице "list". Я хотел бы "print (list_em [del1])", чтобы вернуть чистую строку "Gå med hunden" -A, которую я могу использовать для запуска последнего скрипта, который закомментирован. Вместо этого получите что-то похожее на это с помощью скобок и запятой (из консоли):

nr 0: ('Skura Trappan',)
nr 1: ('Gå med hunden.',)
Chose the number of the list item you want to delete: 1
('Gå med hunden.',) 

OBS! В таблице нет идентификатора, всего два столбца:

mysql> select * from list;
+-----------------+-------------+
| task            | status      |
+-----------------+-------------+
| Skura Trappan   | Not started |
| Gå med hunden.  | Not started |
+-----------------+-------------+
2 rows in set (0.00 sec)
Теги:
python-3.x

1 ответ

0
Лучший ответ

То, что вы получаете от библиотеки MySQL, - это список кортежей, по одному для каждой строки, возвращаемой запросом. Элементами каждого кортежа являются значения столбцов, на которые вы запрашиваете.

В этом случае вы запрашиваете один столбец, поэтому каждый элемент списка является одноэлементным кортежем, который Python будет представлять как ( значение ,) - это то, что вы видите.

Поэтому, чтобы распечатать только значение из кортежа, вам нужно извлечь его, как и со списком:

for eatchRow in rows:
    list_em.append(eatchRow[0])
    print("nr %s: %s" % (number, list_em[number]))
    number += 1

Ещё вопросы

Сообщество Overcoder
Наверх
Меню