我有一个以epoch时间为键的dict。它看起来像这样:
my_dict = {199934234: "val1", 1999234234: "val2"}
当试图将其写入csv时,我会收到错误";应为iterable,而不是int;。但是,使用常规键时没有问题。
import csv
with open('my_file.csv', 'w', newline='') as csvfile:
writer = csv.writer(csvfile)
writer.writerows(my_dict)
我想把它写成csv,这样我就可以在以后再次把它作为字典加载,这样我就能更新它。。。然后再次将其写入csv。csv稍后将被我的网站访问。
这样做的最佳解决方案是什么?在任何其他情况下我都会使用rrd,但在这种情况下,我没有不规则的更新时间。
函数将字典视为可迭代项,它希望从中获取其他可迭代项(即行)。
如果你迭代一个字典,你只得到密钥:
for item in my_dict:
print(item)
199934234
1999234234
相反,您需要一个包含行的可迭代文件。您可以使用my_dict.items()
:
print(my_dict.items())
dict_items([(199934234, 'val1'), (1999234234, 'val2')])
因此:
import csv
with open('my_file.csv', 'w', newline='') as csvfile:
writer = csv.writer(csvfile)
writer.writerows(my_dict.items())
# File content.
199934234,val1
1999234234,val2
尝试:
with open("output.csv", "w", newline="") as csvfile:
writer = csv.writer(csvfile)
for k, v in my_dict.items():
writer.writerow([k, v])