将词典保存到csv python

时间:2017-04-17 22:23:10

标签: python csv

我想在字典下面保存到csv。我的词典内容的格式是:

dict = {0:[u'ab', u'cd'], 1:[u'b'], 2: [u'Ge', u'TT'], 3: [u'Stas'], 4: [u'sap', u'd3', u'ch99']}.

我的代码是:

 with open('Cr_pt.csv', 'wb') as f:
        writer = csv.writer(f)
        writer.writerow(dict.keys())
        writer.writerows(zip(*dict.values())).

以下是我尝试在csv中保存的格式。

  1   2   3    4
  ab  Ge  Stas sap
  cd  TT       d3
               ch99

但是我在最后的csv中只从字典中获得的值很少,例如:

   1   2   3    4
  ab  Ge  Stas sap

2 个答案:

答案 0 :(得分:1)

首先,您应该避免使用dict作为变量名称,因为它会影响a built-in

使用pandas;

可以直接解决问题
import pandas as pd
df = pd.DataFrame.from_dict(dict, orient='index').T.to_csv('Cr_pt.csv', index=False)

输出:

$ cat Cr_pt.csv 
0,1,2,3,4
ab,b,Ge,Stas,sap
cd,,TT,,d3
,,,,ch99

答案 1 :(得分:0)

这是一个直接写入CSV文件而不使用{ "count": 6, "next": null, "previous": null, "results": [ { "content_id": 4 "title": A, "price": 10$, "user": 4 }, { "content_id": 6, "title": B, "price": 13$, "user": 4 }, { "content_id": 1, "title": C, "price": 4$, "user": 4 }, ] } 模块并用逗号分隔每一行的解决方案,创建一个逗号分隔值文件(CSV):

csv

输出:

data = {0:[u'ab', u'cd'], 1:[u'b'], 2: [u'Ge', u'TT'], 3: [u'Stas'], 4: [u'sap', u'd3', u'ch99']}
delimiter = ","

with open('data.csv', 'w') as data_file:
    keys = [str(key) for key in data.keys()]
    values = data.values()
    max_values = max([len(value) for value in values])
    data_file.write(delimiter.join(keys) + "\n")
    for line in range(0, max_values):
        line_values = []
        for key in keys:
            try:
                line_values.append(data[int(key)][line])
            except:
                line_values.append("")
        data_file.write(delimiter.join(line_values) + "\n")

在这种格式中,将数据从文件读回到另一个脚本会更容易,因为这些值只是以逗号分隔,而不是由可变长度的空格分隔。