Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 与_csv.Error有关的问题:应为序列_Python_Python 3.x_Csv_Dictionary - Fatal编程技术网

Python 与_csv.Error有关的问题:应为序列

Python 与_csv.Error有关的问题:应为序列,python,python-3.x,csv,dictionary,Python,Python 3.x,Csv,Dictionary,我有一个python字典列表,我正试图将这些值写入csv文件,但由于某种原因,我一直得到\u csv.Error:sequence expected 以下是示例代码: 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: wr

我有一个python字典列表,我正试图将这些值写入csv文件,但由于某种原因,我一直得到\u csv.Error:sequence expected

以下是示例代码:

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())
任何帮助都将不胜感激。

在Python3中,
values()
不再返回
列表。您必须首先转换它:

writer.writerow(list(each.values()))
请注意,字典没有排序,因此列的顺序没有定义(除非您使用的是Python 3.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

谢谢你的帮助。标题在9列中,有没有一种方法可以简单地在列表中定义标题?我注意到我的输出现在已经混乱了:(将
标题
作为字段名传递也应该可以。但是字段名必须与键完全匹配。你是一个救生员:)