2014-11-12 17 views
7

Tôi có một tập tin csv, test.csv, như:Python viết một csv vào từ điển với tiêu đề như phím và các hàng như các giá trị

1,2,3 
a,b,c 
d,e,f 

Tôi muốn ở trên để trông giống như một cuốn từ điển như:

{"1":"a", "2":"b", "3":"c"} 
{"1":"d", "2":"e", "3":"f"} 

trong đó tiêu đề 1,2,3 là các khóa và các hàng là giá trị.

Tôi không hiểu cách thực hiện việc này bằng csv.DictReader. Mẫu trên chỉ là một mẫu. Dữ liệu thực tế mà tôi đang làm việc có nhiều cột và do đó, tôi không thể truy cập từng hàng bằng cách sử dụng chỉ mục của nó và tự đặt chúng vào từ điển.

+0

Hãy xem điều này: http://stackoverflow.com/questions/19697846/python-csv-to-json –

+0

Cảm ơn bạn! Liên kết này cũng là một trợ giúp tuyệt vời cho câu hỏi của tôi. – user1452759

Trả lời

9

Trả lời câu hỏi của riêng tôi. Sau khi cố gắng cho đôi khi tôi chỉ bây giờ chơi xung quanh với nó nhiều hơn một chút và thêm vòng lặp for.

with open("test.csv") as f: 
    records = csv.DictReader(f) 
    for row in records: 
     print row 

Điều này cho phép đầu ra mong muốn của tôi về

{'1': 'a', '3': 'c', '2': 'b'} 
{'1': 'd', '3': 'f', '2': 'e'} 
6

By dòng đầu tiên mặc định sẽ mất filedname trong csv.DictReader

bạn có thể thử

>>> a = open('/tmp/test.csv') 
>>> a = csv.DictReader(open('/tmp/test.csv'), delimiter=',') 
>>> [x for x in a] 
[{'1': 'a', '3': 'c', '2': 'b'}, {'1': 'd', '3': 'f', '2': 'e'}] 

Đây có thể là những gì muốn của bạn

+0

Điều này thật tuyệt vời! Cảm ơn! :) – user1452759

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