我有一个字典,键作为元组,我想写一个没有引号和括号的文件。
我用",".join(map(str, key))
。
import csv
d={(1, 1, 1): 600, (5, 5, 5): 700, (4, 4, 4): 800}
with open("out.csv", "wb") as f:
w = csv.writer(f)
for key,items in d.items():
w.writerow([key,items])
字符串
我得到了这个:
"(1, 1, 1)",600
"(5, 5, 5)",700
"(4, 4, 4)",800
型
我期待这个:
1, 1, 1, 600
5, 5, 5, 700
4, 4, 4, 800
型
1条答案
按热度按时间q8l4jmvw1#
您需要将键值解包以将其放入列表中,即(1,2,1)-> 1,2,1,并将此列表传递给
writerow
函数。在您当前的代码中,
[(1,1,1),600]
作为feed运行,并将其视为一个2元素列表,因此产生了上面提到的输出。您需要将键值解压缩,即
[(1,1,1),600]
到[1,1,1,600]
。这可以通过使用
*
运算符[*(1,1,1),600]
来实现。此外,
open
采用w
模式,而不是wb
二进制模式,因为您提供的数据是ASCII格式,而不是二进制格式。字符串
否则,您可以使用此方法(如果您不想使用
*
解压缩)。型