【发布时间】:2017-07-02 14:23:00
【问题描述】:
我尝试从 python 中的字典中获取 csv。
我可以创建一个 csv 文件并将我的字典放入其中。
问题是,当我用 excel 打开文件时,标题和值在一列中,但我希望所有键和所有值都在单独的列中。
例如:
column1 column2 column3 column4
row 1 "name" "temp" "tempeinheit" "Druck"
row 2 "test" 24 "C" 0.1
这是下面的代码。
dict= [{"name" : "test", "temp" : 24, "tempeinheit": "C", "druck" : 0.1, "druckeinheit": "Pa"},{"name" : "benni", "temp" : 24, "tempeinheit": "C", "druck" : 0.1, "druckeinheit": "Pa"}]
with open("C:\\test#\\test.csv","w",newline='') as csvfile:
writer = csv.writer(csvfile,dialect="excel-tab")
for row in dict:
if count == 0:
header=row.keys()
writer.writerow(header)
count=+1
writer.writerow(row.values())
更新:
我只是将字典转换为 2 个列表。一个用于键,一个用于数据,我使用 writer.writerow(Data) 编写它们。
另一件事是,我使用 excel 2013,对于新列,它不是 delimiter=",",而是 delimiter=";"。所以 ”;”告诉 excel 将数据放入新列。
感谢您的帮助。
【问题讨论】:
-
你的
dict不是字典,它是字典列表 -
另外,不要将变量命名为
dict- 您正在覆盖标准字典类型 -
是的,我知道那是一个列表。但即使在那种情况下,我也想像我在帖子中描述的那样保存它
-
“问题是当我用 excel 打开文件时,标题和值在一列中”:这主要是 excel 如何解析你的 csv 文件的问题——而且 excel 可能很烦人(当涉及到 csv 文件时,实际上想到了“braindead”。也许你应该试试
excel(不是'excel-tab')方言。此外,您应该以wb模式打开文件,并可能不理会newline。