2015-05-23 2 views
0

Я пытаюсь получить данные из таблицы mysql с помощью python, но продолжаю получать ошибку. Пожалуйста, смотрите мою попытку ниже и данные:Запрос и получение данных из таблицы Mysql с использованием python

import MySQLdb 
# connect 
db = MySQLdb.connect(host="localhost", user="root", passwd="xxxxxxx", db="world") 
cursor = db.cursor() 
t=['red', 'yellow'] 

for x in t: 
    cursor.execute("select * from mytable where colours=%s," [x]) 

Я получил следующее сообщение об ошибке: TypeError: string indices must be integers, not str

я узнал Mysql хранит данные в виде кортежа, поэтому я должен был бы изменить% s к кортежу, но не знаю, как.

Любые предложения? Благодарю.

+0

'cursor.execute ("SELECT * FROM туЬаОго где цвета =% s", [х])' запятая неуместна? –

+0

@NagendraNigade, хорошо заметили, большое спасибо за хорошие глаза. – user2274879

ответ

0

Вы хотите перебрать элемент в t. Поэтому вам не нужен [] вокруг x:

import MySQLdb 
# connect 
db = MySQLdb.connect(host="localhost", user="root", passwd="xxxxxxx", db="world") 
cursor = db.cursor() 
t=['red', 'yellow'] 

for x in t: 
    cursor.execute("select * from mytable where colours=%s", x) 
+0

спасибо за попытку, Нагендра Нигаде уже заметила ошибку в моем коде. – user2274879

2

Попробуйте и проверить, если это решить вашу проблему

import MySQLdb 
# connect 
db = MySQLdb.connect(host="localhost", user="root", passwd="xxxxxxx", db="world") 
cursor = db.cursor() 
t=['red', 'yellow'] 

for x in t: 
    cursor.execute("select * from mytable where colours=%s" % repr(x)) 

Пожалуйста, обратите внимание, что здесь Sql Query будет строить как

select * from mytable where colours='red' #which is actual and correct query 

Хотя Я еще не тестировал, и это может быть альтернативный способ сделать это. Реальная проблема с проблемой ОП является то, что строить Sql Query как

select * from mytable where colours=red # Check the missing quotation around text red 
+0

хороший, он сработал. Пожалуйста, вы можете оставить некоторые объяснения ниже. Спасибо. – user2274879

+0

Можете ли вы принять ответ и сказать мне, где вы его не получили. – MaNKuR

+0

Я столкнулся с другой проблемой и буду очень благодарен за ваше предложение. Вот что я выбрал («красный», «[1,2,3,4]»). Можете ли вы преобразовать '' [1,2,3,4] ''в список? – user2274879

Смежные вопросы