TransWikia.com

Запись списка словарей в CSV

Stack Overflow на русском Asked by maric92 on January 26, 2021

Следующая проблема – имеется список словарей формата

[{'a': 10, 'b': 11, 'c': 12, 'd': 13, 'e': 14}, 
 {'a': 20, 'b': 21, 'c': 22, 'd': 23, 'e': 24}, 
 {'a': 30, 'b': 31, 'c': 32, 'd': 33, 'e': 34}, 
 {'a': 40, 'b': 41, 'c': 42, 'd': 43, 'e': 44}], 

который необходимо переместить в CSV-файл с форматом вида

"a","b","c","d","e"  
 10,11,12,13,14
 20,21,22,23,24
 30,31,32,33,34
 40,41,42,43,44. 

Проблема в том, что при запуске вываливается

(Exception: AttributeError) "’str’ object has no attribute ‘close’" at
line 17, in write_csv_from_list_dict.

Почему так происходить сказать затрудняюсь, явно указан для закрытия файл, а не строка.

def write_csv_from_list_dict(filename, table, fieldnames, separator, quote):
    table = []
    for dit in table:
        a_row = []
        for fieldname in fieldnames:
            a_row.append(dit[fieldname])
        table.append(a_row)
    file_handle = open(filename, 'wt', newline='')
    csv_write = csv.writer(file_handle,
                           delimiter=separator,
                           quotechar=quote,
                           quoting=csv.QUOTE_NONNUMERIC)
    csv_write.writerow(fieldnames)
    for row in table:
        csv_write.writerow(row)
    filename.close()

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP