【问题标题】:Dictionary to CSV file: 'ValueError: Too many values to unpack'字典到 CSV 文件:“ValueError:要解压的值太多”
【发布时间】:2015-04-20 13:42:17
【问题描述】:

我有一本字典,我正在尝试使用以下代码将数据写入文件 dict.csv:

file = open('dict.csv', 'wb')
w = csv.writer(file)
for key, val in currencies:
    w.writerow([key, val])
    file.close()

当我运行上面的代码时,我得到一个“ValueError: too many values to unpack (expected 2)”。

如何在不出现 ValueError 的情况下将字典写入 csv 文件?谢谢。

【问题讨论】:

    标签: python csv dictionary


    【解决方案1】:

    如果你想以这种方式访问​​字典,你需要调用方法iteritems

    for key, val in currencies.iteritems():
        w.writerow([key, val])
    

    正如 @tobias_k 指出的那样,您应该从循环中删除 file.close()

    附带说明一下,这是实现相同结果的另一种方法。

    for key in currencies:
        w.writerow([key,currencies[key]])
    

    【讨论】:

      【解决方案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()
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-01-20
        • 2015-09-04
        • 2017-11-25
        • 2019-04-19
        • 1970-01-01
        • 1970-01-01
        • 2015-12-20
        相关资源
        最近更新 更多