如何从MySQL获得“干净”的字符串?

时间:2018-03-13 12:39:50

标签: mysql python-3.x

我使用MySQL

在python 3.6(pythonanywhere.com)中运行此代码
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”的列表,并填写表“list”中“task”列的内容。我想“print(list_em [del1])”返回'Gåmedhunden' - 一个干净的字符串,我可以用它来运行注释掉的最后一个脚本。而是使用括号和逗号(来自控制台)获得看起来像这样的东西:

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!该表没有任何ID,只有两列:

mysql> select * from list;
+-----------------+-------------+
| task            | status      |
+-----------------+-------------+
| Skura Trappan   | Not started |
| Gå med hunden.  | Not started |
+-----------------+-------------+
2 rows in set (0.00 sec)

1 个答案:

答案 0 :(得分:0)

您从MySQL库中获得的是tuples列表,查询返回的每一行都有一个列表。每个元组的元素都是您要查询的列的值。

在这种情况下,您要查询一列,因此列表的每个元素都是一个元素元组,Python将表示为( value {{1} - 这就是你所看到的。

因此,为了打印出元组中的值,您需要提取它,就像使用列表一样:

,)