以整数为键将字典写入csv

Write dict to csv with integers as keys

我有一个以纪元时间为键的字典。它看起来像这样:

my_dict = {199934234: "val1", 1999234234: "val2"}

尝试将其写入 csv 时,出现错误“预期可迭代,而非 int”。但是,使用常规密钥时没有问题。

import csv

with open('my_file.csv', 'w', newline='') as csvfile:
writer = csv.writer(csvfile)
writer.writerows(my_dict)

我想将其写入 csv,以便稍后可以将其作为字典再次加载,以便更新它...然后再次将其写入 csv。稍后我的网站将访问该 csv。

执行此操作的最佳解决方案是什么?在任何其他情况下我会使用 rrd 但在这种情况下我没有不规则的更新时间。

尝试:

with open("output.csv", "w", newline="") as csvfile:
    writer = csv.writer(csvfile)
    for k, v in my_dict.items():
        writer.writerow([k, v])

该函数将字典视为一个可迭代对象,它希望从中获取其他可迭代对象(即行)。

如果你迭代一个字典,你只会得到键:

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