2012-02-07 21 views
6

Я пытаюсь использовать класс (ADNS-питон), который ожидает список в формате:Python список форматов из MySQLdb

domain_names = ["google.com", "yahoo.com"] 

Это работает, когда я объявляю список, путь вручную. Тем не менее, я пытаюсь использовать список, возвращенный из mysql, используя python-mysqldb.

Когда я смотрю на то, что возвращается из MySQL с помощью:

type(mysql_rows) 

Это также показывает, как список, но когда просмотреть результат:

print(mysql_rows) 

я могу увидеть список в формат:

[('google.com',), ('yahoo.com',)] 

Я пытался заставить вывод в список еще раз, используя список (mysql_rows), который не работал. Я попытался разбор текста вручную, чтобы сделать его похожим на список с помощью:

text_rows = "[" + ", ".join'"%s"' % i for i in mysql_rows = "]" 

Который затем показывает, как правильный формат, но это строка не список, так это не работает.

Это мои первые несколько дней обучения python, так что я сожалею, если это очевидный/глупый вопрос.

Благодаря

ответ

4

MySQL возвращает список кортежей. Каждый кортеж представляет собой строку результата в вашем результирующем наборе. Если вам нужен список только первой «колонки» в результате, попробуйте следующее:

first_column = [x[0] for x in mysql_rows] 
6

Список - это список кортежей. Простой

lst = [x for x, in mysql_rows] 

должно быть достаточно.

+0

Ваш ответ был совершенно верным - я выбрал секретный вопрос, потому что он был мин быстрее. И тебе спасибо. – direct00

+1

@ direct00: достаточно честно :) Рад помочь, повеселиться! –