![](/img/trans.png)
[英]Python: write dict to csv without changing the order of keys and values?
[英]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.