我想在字典下面保存到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
答案 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")
在这种格式中,将数据从文件读回到另一个脚本会更容易,因为这些值只是以逗号分隔,而不是由可变长度的空格分隔。