Python CSV Erreur: séquence attendue
Je suis d'essayer d'exécuter le code suivant en Python, et j'obtiens l'erreur:
csv.Error: sequence expected
Quelqu'un aurait-il une idée de quel est le problème avec mon code? (Le fichier a déjà été importé dans le programme).
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()
L'erreur vient de la manière suivante:
Traceback (most recent call last):
File "checkcsv.py", line 30, in <module>
writer.writerow(values)
_csv.Error: sequence expected
Merci de poster le code d'erreur complet avec plein de sperme.
C'est censé ignorer la ligne courante dans le fichier ouvert et passez à la ligne suivante. Je suppose que c'est la prochaine question que j'allais courir dans!
êtes-vous en prenant la ligne et la gravure de votre fichier csv?
Oui, je suis en train de prendre chaque élément indexé dans la liste des 'variables' et de les écrire dans un fichier csv. Voir l'edit - j'ai juste ajouté de la première partie du programme que j'ai en quelque sorte ne pas coller la première fois.
else: pass
ne fait rien dans votre code. Vouliez-vous dire de faire quelque chose d'autre?C'est censé ignorer la ligne courante dans le fichier ouvert et passez à la ligne suivante. Je suppose que c'est la prochaine question que j'allais courir dans!
êtes-vous en prenant la ligne et la gravure de votre fichier csv?
Oui, je suis en train de prendre chaque élément indexé dans la liste des 'variables' et de les écrire dans un fichier csv. Voir l'edit - j'ai juste ajouté de la première partie du programme que j'ai en quelque sorte ne pas coller la première fois.
OriginalL'auteur Ben Toms | 2013-02-09
Vous devez vous connecter pour publier un commentaire.
writer.writerow
s'attend à une séquence (un tuple ou une liste) des valeurs d'écrire en une seule ligne, avec une valeur pour chaque colonne de la ligne. Ce que vous avez fait au lieu de cela, il est une valeur unique. Votre code devrait vraiment regarder de plus comme:et il me semble que la plupart de ce code doit être dans une grande boucle qui s'exécute une fois par station (et donc une fois par ligne).
OriginalL'auteur Mike DeSimone
Droit maintenant il semble que vous essayez d'écrire simplement une chaîne
va écrire l'ensemble de la ligne
inspecter la liste des variables
aussi il semble que vous ouvrez un nouveau fichier csv pour chaque itération? Devrait-il être hors de la boucle?
Oui ça doit être hors de la boucle...merci beaucoup pour s'en rendre compte.
Je suis en train d'écrire la STID, T, RH, et à la Fois dans la même ligne, mais séparer les colonnes dans le fichier csv. Ne faut pas que le code du travail pour qui?
oui consultez la documentation, et essayer une couple de fois, chaque élément de la liste peut être écrite comme une autre colonne
Je l'obtenir maintenant! Cependant, quand je tire dessus, la partie du code qui ouvre le fichier csv, le programme s'exécute mais ne pas transférer de quelque chose pour le fichier csv. J'ai le texte suivant à gauche dans l'instruction si au fond: de l'écrivain.writerow([tmp_STID, tmp_Times, tmp_T, tmp_RH])
OriginalL'auteur dm03514
Eh bien, essayez de penser à ce que Python s'attendre lorsque vous essayez d'utiliser le "writeROW" la méthode 🙂
Entrer qu'une seule valeur ne fonctionne pas, parce que chaque valeur dans une ligne différente, ce qui n'est probablement pas ce que vous essayez de faire. Au lieu de cela, vous pourriez obtenir toutes les valeurs qui sont en quelque sorte liés les uns aux autres dans un ensemble.
Par exemple: La temprature est 26C sur de 16:35 à Washington de la gare, avec le taux d'humidité de 85%. Ce sera représenté sous la forme: ["Washington", "16:35", 26, 85].
OriginalL'auteur Infinity