我有一本字典,我正在尝试使用以下代码将数据写入文件dict.csv:
file = open('dict.csv', 'wb')
w = csv.writer(file)
for key, val in currencies:
w.writerow([key, val])
file.close()
当我运行上面的代码时,我得到一个'ValueError:太多的值来解包(预期2)'。
如何在不获取ValueError的情况下将字典写入csv文件?感谢。
答案 0 :(得分:4)
如果您希望以这种方式访问字典,则需要调用方法iteritems
:
for key, val in currencies.iteritems():
w.writerow([key, val])
正如 @tobias_k 指出的那样,您应该从循环中删除file.close()
。
作为旁注,这是实现相同结果的另一种方法。
for key in currencies:
w.writerow([key,currencies[key]])
答案 1 :(得分:2)
在Python2中使用iteritems
:
for key, val in currencies.iteritems():
w.writerow([key, val])
在Python3中,只需使用items
:
for key, val in currencies.items():
w.writerow([key, val])
请记住将file.close()
放在循环之外:
for ....:
w.writerow([key, val])
file.close()