用整数作为键将dict写入csv



我有一个以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])

相关内容

  • 没有找到相关文章