2010-01-26 25 views
1

Voici un échantillon de la première ligne:csv.reader tourner des virgules en périodes lancer des erreurs

link,Title,Description,Keywords 

Il est fait à partir d'un classeur Excel, j'ai essayé d'économie dans tous les formats CSV (fenêtre, ms-dos, et la liste délimitée par des virgules) J'ai même sauver essayé dans 2 formats de fichiers txt (fenêtre, ms-dos)

k ... est le code ici:

csvReader = csv.reader(file('files/my_file.csv', "rU"), delimiter=',') 

Je dois avoir le U sinon je reçois la nouvelle lin universelle erreur e

k ... voici l'erreur:

16:56:25,085 ERROR [__main__] Script Error: syntax error at or near "." 
LINE 1: ...escription, meta_keywords) VALUES ('link', 'Title'. 'Descrip... 
                  ^

16:56:25,085 ERROR [__main__] Script Error: syntax error at or near "." 
LINE 1: ...escription, meta_keywords) VALUES ('link', 'Title'. 'Descrip... 

grogne Ne voyez-vous ... pour une raison quelconque, quand il passe par la fonction csv.reader, première virgule est OK, la deuxième virgule devient une période!

Quelqu'un at-il déjà rencontré ce problème?

+1

Non. Essayez de montrer le vrai code avec les données réelles. "Erreur de script: erreur de syntaxe proche ou proche de" ressemblant à une erreur BASH. Essayez-vous d'exécuter le fichier CSV avec BASH? –

+1

Cela ressemble plus à une erreur dans une expression SQL. –

+0

Ah, bien sûr. L'instruction VALUES. Je vois. –

Répondre

3

Dalkes commentaire ci-dessus laissé tomber la pièce pour moi:

Vous lisez à partir d'un fichier CSV, et en prenant les données et l'insertion dans une base de données SQL, évidemment, bien que vous ne le dit pas. Vous avez une erreur de syntaxe dans votre instruction SQL.

Notez que la plupart des bases de données SQL ont des importations CSV, vous n'avez donc pas besoin de les écrire. Notez également que vous essayez évidemment d'importer la première ligne, qui contient des en-têtes de colonne. C'est sûrement incorrect.

Tout cela montre qu'il est important sur Stackoverflow d'afficher réel code qui a le problème. Affinez le code jusqu'à ce que vous puissiez afficher votre problème dans un code assez petit pour le coller ici.

99% du temps, vous trouverez l'erreur en faisant cela.

0

Le csv.reader n'est pas responsable de la construction de l'instruction SQL dont le fragment est affiché dans le message d'erreur que vous avez posté - une autre partie de votre code doit être celle qui construit cette instruction, et il le fait mal . Donc, ne pensez pas à csv.reader, mais à propos de ce que vous faire avec les tuples, il retourne au reste de votre code! -)

1

c'est l'énoncé de valeurs! Geez, mais j'ai fait un log.debug et je n'ai pas vu la sortie qui était avant le sql ... mais c'est le plus ce que c'est. Je n'essayais pas d'importer la première rangée, je l'ai branché intentionnellement pour ne pas montrer les données réelles. Désolé pour le dérangement. Je ne pensais pas que le code dépassait la ligne que je publiais. Et c'est le vrai code tout sauf le nom du fichier. Je suis nouveau sur Python, pas sur SQL, donc j'étais sûr que c'était le csv.reader car il m'était si étranger. Merci les gars pour votre aide.