csv.reader将逗号转换为抛出错误的句点

时间:2010-01-26 23:03:16

标签: python csv syntax-error period

以下是第一行的示例:

link,Title,Description,Keywords

它是由excel工作簿制作的,我尝试保存所有CSV格式(窗口,ms-dos和逗号分隔列表)我甚至尝试以2个txt文件格式保存(窗口,ms-dos)

...ķ 这是代码:

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

我必须拥有U,否则我会得到通用的新行错误

...ķ 这是错误:

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

抱怨 你看到...出于某种原因,当它通过csv.reader函数时,第一个逗号就可以了,第二个逗号就成了句号!

有人碰到过这个吗?

3 个答案:

答案 0 :(得分:3)

上面的Dalkes评论为我丢弃了硬币:

你正在读取一个CSV文件,然后把这些数据和插入一个SQL数据库,显然,虽然你没有这么说。您的SQL语句中存在语法错误。

请注意,大多数SQL数据库都有CSV导入,因此您无需编写它们。 另请注意,您显然正在尝试导入包含列标题的第一行。这肯定是不正确的。

这一切都表明,在Stackoverflow上显示有问题的真实代码非常重要。 缩小代码,直到您可以在代码中显示问题,该代码足够小,可以粘贴到此处。

99%的时间你会发现错误。

答案 1 :(得分:1)

这是价值陈述! geez,但是我做了一个log.debug并且没有看到它在sql之前的输出......但这是最大的def它是什么。我没有尝试导入第一行,我故意将其插入那里以显示实际数据。抱歉给你带来不便。我认为代码没有超过我发布的那条线。除了文件名之外,它是真正的代码。我是Python的新手,而不是SQL,所以我确信它是csv.reader,因为它对我来说太陌生了。谢谢你们的帮助。

答案 2 :(得分:0)

csv.reader不负责构造SQL语句,其片段显示在您发布的错误消息中 - 您的代码的其他一部分必须是构造此语句的部分,并且它正在执行此操作错误的方法。因此,不要考虑csv.reader,而是关于你做什么的元组,它会返回到你的代码的其余部分! - )