代码之家  ›  专栏  ›  技术社区  ›  Helen Neely

问题_csv.错误:应为序列

  •  1
  • Helen Neely  · 技术社区  · 7 年前

    _csv.错误:应为序列

    以下是示例代码:

    import csv
    import os, sys
    
    headers = ['id', 'Info']
    data = [{'id': 1, 'Info': 'Example 1'}, {'id': 2, 'Info':'Example 2'}]
    
    with open('all_csv.csv', 'wt') as f:
       writer = csv.writer(f, delimiter=',')
       writer.writerow(headers)
       for each in data:
          writer.writerow(each.values())
    

    任何帮助都将不胜感激。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Jean-François Fabre    7 年前

    在Python3中, values() 不返回 list

    writer.writerow(list(each.values()))
    

    请注意,字典没有排序,因此列的顺序没有定义(除非您使用的是python3.6或更高版本),因此您可能希望使用 csv.DictWriter

    下面是我如何使用 csv.DictWriter文件 :

    import csv
    
    data = [{'id': 1, 'Info': 'Example 1'}, {'id': 2, 'Info':'Example 2'}]
    
    with open('all_csv.csv', 'w', newline="") as f:
       writer = csv.DictWriter(f, fieldnames = data[0], delimiter=',')
       writer.writeheader()
       writer.writerows(data)
    

    输出为:

    Info,id
    Example 1,1
    Example 2,2