繁体   English   中英

如何在保持键值对的同时将字典转换为逗号分隔的.txt 文件? Python

[英]How can I convert a dictionary into a comma separated .txt file while maintaining the key:value pair? Python

我有一本字典,需要以逗号分隔值格式写入 a.txt 文件。 我试过了

mydict = {'first': ['1','2','3'], 'second': ['2','3','4'], 'third': ['3','4','5']}
f = open("doc.txt","w")
for key, values in mydict:
    f.write(','.format(key, values)+"\n")
f.close()

但它不起作用,因为值太多了。 我还尝试使用 .join 为键和值创建两个逗号分隔的列表,但我需要将值映射到键,就像在 CSV 文件中那样。

谢谢您的帮助!

为了遍历字典的键和值,您必须在 for 循环中调用 dict.items() 方法。 这会将键值对转换为元组。

首先,当您遍历字典时,您应该使用mydict.items()

至于格式化 csv 的行,您需要将值连接成一个字符串,然后格式化新行:

my_dict = {'first': ['1', '2', '3'], 'second': ['2', '3', '4'], 'third': ['3', '4', '5']}
with open('doc.txt', 'w') as f:
    for key, values in my_dict.items():
        f.write(f"{key},{','.join(values)}\n")

这将生成一个具有以下输出的文本文件:

second,2,3,4
third,3,4,5
first,1,2,3

请注意,输出不会按firstsecondthird的顺序排列,因为字典不会按照您输入的顺序返回键。

如果您提到了错误,则将出现“无法解包的值太多”的错误,这可能是因为您试图遍历字典本身。 使用mydict.items()代替mydict

因此您的代码应如下所示: mydict = {'first': ['1','2','3'], 'second': ['2','3','4'], 'third': ['3','4','5']} f = open("doc.txt","w") for key, values in mydict.items(): f.write('{},{}'.format(key, values)+"\\n") f.close()

顺便说一下,这样您将在doc.txt中获得以下输出:

`first,['1', '2', '3']
second,['2', '3', '4']
third,['3', '4', '5']

`

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM