【问题标题】:Write dictionary (keys and values) to a csv file将字典(键和值)写入 csv 文件
【发布时间】:2014-02-01 20:45:48
【问题描述】:

我只希望 csv 文件看起来像这样:

键,item1,item2,item3 key2,itema,itemB,itemC

等等

字典有一个键,值是一个浮点数列表。 这是我必须写入 csv 文件的当前代码,但它所做的只是写出这样的密钥:k,e,y,s

感谢任何帮助

with open(outFileName1, 'w') as outfile:
   csv_Writer = csv.writer(outfile)
   csv_Writer.writerows(dict1)

【问题讨论】:

    标签: python python-2.7 dictionary


    【解决方案1】:
    import csv
    
    
    dict_data = {'key1': [1, 2, 3], 'key2': [4, 5, 6]}
    
    with open("dict2csv.txt", 'w') as outfile:
       csv_writer = csv.writer(outfile, delimiter=',', quotechar='|', quoting=csv.QUOTE_MINIMAL)
    
       for k,v in dict_data.items():
           csv_writer.writerow([k] + v)
    

    此代码将以您希望的格式将每个键、值对写入 csv 文件中的单独行。

    【讨论】:

      【解决方案2】:

      无需详细了解 CSV 的工作原理,您可以通过以下方式轻松解决它:

      with open("out.txt", 'w') as outfile:
          for k,v in dict1.items():
              outfile.write(str(k))
              for item in v:
                  outfile.write(","+str(item))
              outfile.write(" ")
      

      【讨论】:

      • 一般来说,永远不要尝试手写这样的 CSV 文件,因为它根本无法正确处理转义等问题。始终使用 csv.writer 并为所需的 CSV 格式进行正确配置。
      【解决方案3】:

      您当前的代码迭代仅产生键的字典。来看看

      import csv
      
      data = {
          'key1': ['item1', 'item2'],
          'key2': ['item3', 'item4']
      }
      
      with open('', 'w') as outfile:
          writer = csv.writer(outfile)
          for k, v in data.iteritems():
              writer.writerow([k] + v)
      

      请注意,它会迭代 .iteritems() 返回的键值对。键被插入到与值列表连接的列表中。

      【讨论】:

        猜你喜欢
        • 2012-01-30
        • 1970-01-01
        • 2023-03-03
        • 2019-07-02
        • 1970-01-01
        • 2020-06-11
        • 1970-01-01
        • 2020-01-25
        相关资源
        最近更新 更多