以整数为键将字典写入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
我有一个以纪元时间为键的字典。它看起来像这样:
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