当前位置:  开发笔记 > 编程语言 > 正文

在python中读取/写出字典到csv文件

如何解决《在python中读取/写出字典到csv文件》经验,为你挑选了2个好方法。

对python来说很新,而且csv文件的文档有点令人困惑.

我有一个字典,如下所示:

key1:(value1,value2)

key2:(value1,value2)

key3:(value1,value2)....

我想将这些文件以每行包含密钥的格式写入csv文件,然后是两个值.

我还希望能够在以后将它们从文件中读回字典中.



1> Martin Valgu..:

我强烈推荐Pandas.

转换为Pandas DataFrame:

import pandas as pd

d = {
    'a': (1, 101),
    'b': (2, 202),
    'c': (3, 303)
}
df = pd.DataFrame.from_dict(d, orient="index")

创建CSV文件:

df.to_csv("data.csv")

将CSV文件作为DataFrame读回:

df = pd.read_csv("data.csv", index_col=0)

将DataFrame转换回原始字典格式:

d = df.to_dict("split")
d = dict(zip(d["index"], d["data"]))

编辑:由于您提到在Excel中使用输出文件的目标,Pandas to_excel()和read_excel()可能对您更有用,因为它们可以更好地保留转换之间的内容.此外,您可能希望完全跳过Excel并使用标准Python科学堆栈.


使用pandas的好方法是to_csv,不需要打开命令,比如我的答案.

2> nehemiah..:

由于问题很简单,我在这里找不到使用Pandas的足够好处。

另请注意OP,如果要将值存储到文件中只是为了读取文件,只需使用JSON或Python的扩展模块即可。仅当我们需要与潜在的Excel用户进行交互时,才应将导出到CSV的操作最小化。

下面的代码将字典转换为CSV

value1 = 'one'
value2 = 'two'
d = { 
        'key1': (value1, value2), 
        'key2': (value1, value2), 
        'key3': (value1, value2)
    }
CSV ="\n".join([k+','+','.join(v) for k,v in d.items()]) 
#You can store this CSV string variable to file as below
# with open("filename.csv", "w") as file:
    # file.write(CSV)

这段代码说明了列表理解内发生的事情。

CSV = ""
for k,v in d.items():
    line = "{},{}\n".format(k, ",".join(v))
    CSV+=line
print CSV 

推荐阅读
个性2402852463
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有