Python csv 模块在 writer.writerow 处抛出 "Error: sequence expected"

标签 python csv

我试图在 Python 中运行以下代码,但出现错误:

 csv.Error: sequence expected

有人知道我的代码有什么问题吗? (该文件之前已导入到程序中)。

import csv
file = open('/home/btoms/Desktop/TomsBen/2000/01/01/20000101acme.mts', 'r')

variables = []

file.readline() #Skip a line
file.readline() 
file.readline() #Skip another line

for line in file:
    tmp = line.split()
    tmp_STID = str(tmp[0])
    tmp_T = float(tmp[4]) 
    tmp_RH = float(tmp[3])
    tmp_Times = float(tmp[2])
    variables.append(tmp_STID)
    variables.append(tmp_Times)
    variables.append(tmp_T)
    variables.append(tmp_RH)


    if tmp_T < 6.2 and tmp_RH > 60.0: 
    dataCSV = open('ProgramCheck.csv', 'w') 
    writer = csv.writer(dataCSV, dialect='excel')
    writer.writerow(['Station ID', 'Time', 'Temperature' , 'Relative Humidity']) 

    for values in variables:
        writer.writerow(values)
    else:
            pass
    file.close()

出现的错误如下:

    Traceback (most recent call last):
      File "checkcsv.py", line 30, in <module>
        writer.writerow(values)
    _csv.Error: sequence expected

最佳答案

writer.writerow 期望将值序列(元组或列表)写入一行,该行中每列一个值。你给它的是一个单一的值(value)。您的代码确实应该看起来更像:

writer.writerow([tmp_STID, tmp_Times, tmp_T, tmp_RH])

在我看来,大部分代码应该在一个大循环中,每个站运行一次(因此每行运行一次)。


dataCSV = open('ProgramCheck.csv', 'w') 
writer = csv.writer(dataCSV, dialect='excel')
writer.writerow(['Station ID', 'Time', 'Temperature' , 'Relative Humidity']) 

for line in inputData:
    tmp = line.split()

    tmp_STID = str(tmp[0])
    tmp_T = float(tmp[4]) 
    tmp_RH = float(tmp[3])
    tmp_Times = float(tmp[2])

    if tmp_T < 6.2 and tmp_RH > 60.0: 
        writer.writerow([tmp_STID, tmp_Times, tmp_T, tmp_RH])

file.close()

关于Python csv 模块在 writer.writerow 处抛出 "Error: sequence expected",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14784334/

相关文章:

python - Pymongo/bson : Convert python. cursor.Cursor 对象到可序列化/JSON 对象

Python线程锁定/类变量初始化混淆

python - 基于 JSON 字典键的 CSV header

python - PostgreSQL COPY 命令问题

PHP print_r 显示从 CSV 文件分解的关联数组的内容,但 echo 无法访问其中的单个值

python - 使用需求 ID 标记 py.test 测试

python - 列表列表的排列

python - 如何在Windows中使用python更改系统时区?

python - 如何使用 pandas python3 从 CSV 的中间名列中获取中间名首字母并写入新的 CSV

sql-server - 如何跳过ssis平面文件源中的坏行