2016-04-10 3 views
1

Я после этого руководства: https://scriptingmysql.wordpress.com/2011/09/09/retrieving-data-from-mysql-via-python/Получить значение строки из MySQL

Это код:

... 
cursor.execute ("SELECT X,Y,Z FROM tab_a") 

# fetch all of the rows from the query 
data = cursor.fetchall() 

# print the rows 
for row in data : 
    print row[0] 

Это не работает. Он говорит:

print row[0] 
KeyError: 0 

если я изменить его на:

for row in data : 
    print row 

это дает:

{'X: '120', 'Y': '0', 'Z': '730'} 

Это правильные данные, но я хочу, чтобы напечатать только 120 не весь список ,

Как это сделать?

+1

Вы бы 'печати (строка [«Х»])' но откуда взялся дикт? –

+0

@PadraicCunningham спасибо. Это сработало. – java

+0

Не стоит беспокоиться, не возвращает ли 'MySQLdb' значение dict по умолчанию? С mysql.connector вы должны использовать 'connection.cursor (dictionary = True)' –

ответ

1

Добавление cursor(MySQLdb.cursors.DictCursor) означает, что вы получите Dict возвращенное вместо кортежей вы обычно получаете, так что вы должны получить доступ по ключу:

for row in data: 
    print(row["X"])