2014-02-01 3 views
3

Я просто хочу, файл CSV, чтобы выглядеть следующим образом:записи словаря (ключи и значения) к CSV файл

ключ, item1, item2, item3 key2, Itema, itemB, itemC

и так на

В словаре есть ключ, а значение - список поплавков. Это текущий код, я должен написать в файл CSV, но все это делает выписывать ключ, так: к, е, у, с

Любая помощь приветствуется

with open(outFileName1, 'w') as outfile: 
    csv_Writer = csv.writer(outfile) 
    csv_Writer.writerows(dict1) 

ответ

3
import csv 


dict_data = {'key1': [1, 2, 3], 'key2': [4, 5, 6]} 

with open("dict2csv.txt", 'w') as outfile: 
    csv_writer = csv.writer(outfile, delimiter=',', quotechar='|', quoting=csv.QUOTE_MINIMAL) 

    for k,v in dict_data.items(): 
     csv_writer.writerow([k] + v) 

Этот код будет записывать каждую пару ключей, значение в вашем формате желаний на отдельной строке в файле csv.

0

Не углубляясь в подробность, как CSV работает вы можете легко решить что-то вроде:

with open("out.txt", 'w') as outfile: 
    for k,v in dict1.items(): 
     outfile.write(str(k)) 
     for item in v: 
      outfile.write(","+str(item)) 
     outfile.write(" ") 
+2

Как правило, никогда не пытайтесь вручную написать CSV-файл, как это, так как он вообще не будет справляться с экранированием. Всегда используйте 'csv.writer' с правильной конфигурацией для формата CSV. – Iguananaut

0

текущего код перебирает словарь, который дает только ключи. Посмотрите на

import csv 

data = { 
    'key1': ['item1', 'item2'], 
    'key2': ['item3', 'item4'] 
} 

with open('', 'w') as outfile: 
    writer = csv.writer(outfile) 
    for k, v in data.iteritems(): 
     writer.writerow([k] + v) 

Обратите внимание, что он перебирает пар ключ-значение, возвращенное .iteritems(). Ключ вставляется в список, который объединен со списком значений.

Смежные вопросы