【问题标题】:Write python dictionary to CSV columns: keys to first column, values to second将python字典写入CSV列:第一列的键,第二列的值
【发布时间】:2014-09-06 07:42:48
【问题描述】:

我正在寻找一种将 python 字典写入列的方法(第一列中的键和第二列中的值)。这个link 展示了如何将列表写入列,但我想知道是否有一种方法可以在不将我的字典转换为两个压缩列表的情况下做到这一点。

myDict = {1:'a', 2:'b', 3:'c'}

keyList = myDict.keys()
valueList = myDict.values()

rows = zip(keyList, valueList)

with open('test.csv', 'wb') as f:
    writer = csv.writer(f)
    for row in rows:
        writer.writerow(row)

想要的结果:

1;a
2;b
3;c

【问题讨论】:

    标签: python csv dictionary


    【解决方案1】:

    你可以简单地在 python 2.X 中做:

    with open('test.csv', 'wb') as f:
        writer = csv.writer(f)
        for row in myDict.iteritems():
            writer.writerow(row)
    

    对于python 3.X,将for循环行改为for row in myDict.items():

    【讨论】:

      【解决方案2】:

      做一个稍微短一点的版本:

      rows = myDict.iteritems()
      

      (或.items() 用于 Python 3。)

      要获得; 分隔符,请将delimiter 传递给csv.readercsv.writer。在这种情况下:

      writer = csv.writer(f, delimiter=';')
      

      【讨论】:

      • 这将产生1;2;3\na;b;c,而不是所需的输出。
      • 谢谢!我花了很长时间才找到合适的答案,你帮我找到了我的解决方案:with open('manifesttest2.csv', "wb") as f: writer = csv.writer(f, delimiter=',') writer.writerow(amazonData)
      • @MichaelRomrell CSV 的读取器和写入器对象应默认使用, 作为分隔符(CSV 代表逗号分隔值)。不传参数能行吗?
      猜你喜欢
      • 1970-01-01
      • 2012-11-19
      • 2016-03-01
      • 1970-01-01
      • 2018-07-22
      • 2013-07-26
      • 2019-06-10
      • 2022-12-03
      • 1970-01-01
      相关资源
      最近更新 更多