python - not - iterable expected エラー




Python CSVエラー:シーケンスが必要です (2)

writer.writerowは、値のシーケンス(タプルまたはリスト)が単一の行に書き込むことを期待しています。その行の列ごとに1つの値があります。 代わりにそれに与えたものは、単一の値です。 あなたのコードは本当にもっと似ているはずです:

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

このコードの大部分が大きなループになっているように見えます。これはステーションごとに1回(したがって行ごとに1回)実行されます。

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.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

まあ、 "writeROW"メソッドを使用しようとしたときにPythonが期待していることを考えてみてください:)すべての値が異なる行にあるため、1つの値を入力するだけでは機能しません。 代わりに、どういうわけか、お互いに関連しているすべての値を1つのセットで得ることができます。

たとえば、温度はワシントンの駅で16:35に26℃、湿度は85%です。 これは、["Washington"、 "16:35"、26、85]と表されます。





csv