【问题标题】:Getting this error _csv.Error: sequence expected in Python收到此错误 _csv.Error: Python 中预期的序列
【发布时间】:2014-09-05 09:03:39
【问题描述】:

我正在尝试编写一个名为 header.py 的 python 脚本,其中我有一个标题列表:-

header = ['name', 'age', 'gender']

我正在尝试向其附加标头并将其写入 csv 文件。

这是我的代码 sn-p:-

import csv  
header = ['name', 'age', 'gender']
updated_csv_writer = csv.writer(open("updatedQueryOutput.csv", "w"),delimiter = ',')
appendAdd = header.append("address")
updated_csv_writer.writerow(appendAdd)

但我收到此错误:-

_csv.Error: sequence expected

我不知道我的代码有什么问题。 有什么帮助吗?谢谢

【问题讨论】:

  • 我还要注意,您将泄露 updatedQueryOutput.csv 的文件句柄 - 您可以考虑使用 with 来避免这种情况。

标签: python csv append


【解决方案1】:

append 改变列表但不返回它,因此您需要将 header.append 语句移到它自己的位置。请参阅此顶级示例:

Python 2.7.5+ (default, Feb 27 2014, 19:37:08) 
[GCC 4.8.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> a = [1,2,3]
>>> a.append(4)
>>> a
[1, 2, 3, 4]

所以你可以像这样修改你的代码:

import csv  
header = ['name', 'age', 'gender']
updated_csv_writer = csv.writer(open("updatedQueryOutput.csv", "w"),delimiter = ',')
header.append("address")
updated_csv_writer.writerow(header)

如果你想保留header 的原始值,你总是可以像这样创建一个新列表:

header_new = header + ['address']

【讨论】:

  • 我也试过了,但是没用!请查看修改后的版本。我试过了,同样的错误。
  • 正如我所说,append 会改变列表 - 它不会创建新列表。所以你需要传入header。更新了答案以包含工作代码。
猜你喜欢
  • 2012-09-05
  • 1970-01-01
  • 2012-04-22
  • 2014-05-13
  • 1970-01-01
  • 2017-06-15
  • 2013-04-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多