簡體   English   中英

以整數為鍵將 dict 寫入 csv

[英]Write dict to csv with integers as keys

我有一個以紀元時間為鍵的字典。 它看起來像這樣:

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

嘗試將其寫入 csv 時,我收到錯誤“iterable expected, not 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])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM