2013-01-03 27 views
19

Sử dụng python, tôi đang ghi dữ liệu từ danh sách vào tệp .csv, hàng khôn ngoan.ghi dữ liệu từ danh sách python vào csv hàng-khôn ngoan

Code:

writer=csv.writer(open(filepath,'wb')) 
header=['type','id','numberOfUpdates','isPingEnabled','lastUpdated'] 
length_list=len(header) 
i=0 

while i!=length_list : 
    data=header[i] 
    print data 
    i=i+1 
    writer.writerow(data) 

Kết quả: Dữ liệu đang được ghi vào tập tin csv nhưng mỗi chữ cái được in trong mỗi cột.

Ví dụ: loại được viết dưới dạng 't' trong một cột, 'y' trong cột tiếp theo, v.v. Tôi cần toàn bộ từ trong một cột. Một số có thể chỉ ra những gì tôi có thể thay đổi?

Cảm ơn

+1

writerow() viết như tên cho thấy rõ ràng các dữ liệu cho một * * liên tiếp. Vui lòng kiểm tra tài liệu * và * ví dụ trước. Tài liệu hướng dẫn rõ ràng về việc bạn cần truyền dữ liệu cho tất cả các cột cho một hàng tới writerow(). –

+2

Tôi không nghĩ rằng câu hỏi này xứng đáng là một câu trả lời. Đó là một câu hỏi rõ ràng bằng văn bản. Lỗi duy nhất mà OP thực hiện có lẽ không hoàn toàn hiểu được tài liệu của mô-đun csv. – jdi

+0

Các ví dụ trong tài liệu là đủ rõ ràng để xem cách API hoạt động .... một vấn đề suy nghĩ –

Trả lời

32

Thay đổi writer.writerow(data) để writer.writerow([data]).

.writerow có thể lặp lại và sử dụng từng phần tử có thể lặp lại cho mỗi cột. Nếu bạn sử dụng một danh sách chỉ với một phần tử, nó sẽ được đặt trong một cột đơn.

Bạn cũng nên tái cấu trúc vòng lặp của bạn:

for word in header: 
    writer.writerow([word]) 
Các vấn đề liên quan