2012-02-07 30 views
6

Tôi đang cố gắng sử dụng một Class (adns-python) được mong đợi một danh sách trong các định dạng:Python danh sách định dạng từ mysqldb

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

này đang làm việc khi tôi tuyên bố danh sách như vậy bằng tay. Tuy nhiên, tôi đang cố gắng sử dụng một danh sách trả về từ mysql bằng cách sử dụng python-mysqldb.

Khi tôi nhìn vào những gì đang được trở về từ mysql sử dụng:

type(mysql_rows) 

này cũng cho thấy như một danh sách, nhưng khi xem kết quả:

print(mysql_rows) 

tôi có thể nhìn thấy danh sách là ở định dạng:

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

Tôi đã cố gắng bắt đầu lại danh sách bằng danh sách (mysql_rows) không hoạt động. Tôi đã thử phân tích cú pháp văn bản theo cách thủ công để làm cho văn bản trông giống như danh sách bằng cách sử dụng:

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

Sau đó hiển thị dưới dạng định dạng đúng, nhưng đó không phải là danh sách để không hoạt động.

Đây là vài ngày đầu tiên tôi học python, vì vậy tôi xin lỗi nếu đây là câu hỏi rõ ràng/ngu ngốc.

Cảm ơn

Trả lời

4

mysql trả về danh sách bộ dữ liệu. Mỗi tuple là một hàng kết quả trong tập kết quả của bạn. Nếu bạn muốn danh sách chỉ có "cột" đầu tiên trong kết quả, hãy thử điều này:

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

Danh sách này là danh sách các bộ dữ liệu. Một đơn giản

lst = [x for x, in mysql_rows] 

phải đủ.

+0

Câu trả lời của bạn cũng hoàn toàn chính xác - tôi đã chọn bí mật vì anh ấy sớm hơn một phút. Tôi cung cảm ơn bạn. – direct00

+1

@ direct00: Đủ công bằng :) Rất vui được giúp đỡ, vui chơi! –

Các vấn đề liên quan