2012-02-07 12 views
6

Próbuję użyć klasy (ADNS-python), która spodziewa się wykaz w formacie:Python lista Format z MySQLdb

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

To działa, kiedy zadeklarować listę w ten sposób ręcznie. Jednak próbuję użyć listy zwróconej przez mysql przy użyciu Pythona-mysqldb.

Kiedy patrzę na to, co jest zwracane z MySQL przy użyciu:

type(mysql_rows) 

To pokazuje również w postaci listy, ale kiedy wyświetlić wynik:

print(mysql_rows) 

widzę lista jest w format:

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

Próbowałem wymusić wyjście do listy ponownie przy użyciu listy (mysql_rows), która nie działała. Próbowałem parsowania tekstu ręcznie, aby wyglądać jak listy za pomocą:

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

Które następnie pokazuje jak właściwym formacie, ale jest to ciąg nie lista więc to nie działa albo.

To jest moje pierwsze kilka dni nauki Pythona, więc przykro mi, jeśli to jest oczywiste/głupie pytanie.

Dzięki

Odpowiedz

4

mysql zwraca listę krotek. Każda krotka jest rzędem wyników w zestawie wyników. Jeśli chcesz uzyskać listę tylko pierwszej "kolumny" w wyniku, spróbuj tego:

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

Lista jest listą krotek. Powinno wystarczyć proste proste: 10.

+0

Twoja odpowiedź też była całkowicie poprawna - wybrałem sekretny cios, ponieważ był o minutę wcześniej. Dziękuję również. – direct00

+1

@ direct00: Wystarczająco fair :) Cieszę się, że pomogę, baw się dobrze! –