已经提出了很多与这个项目有关的问题,但我遇到了太多麻烦,而且我正试图弄明白。
使用Python和Scrapy获取网络信息。 我可以使用以下代码将3个项目(Title,CriticalScore,UserScore)中的每一个添加到数据库seperatley中:
cursor.execute("INSERT INTO ps3 (userscore) VALUES (%s)",[item['uscore']])
现在它工作正常,它将它们放在上升的ROWS中并且一切都很好。 但是,我需要将Title,CriticalScore和UserScore添加到同一行,当我尝试它时,我收到此错误:
raise errorclass, errorvalue
_mysql_exceptions.ProgrammingError: (1064, 'You have an error in your SQ
L syntax; check the manual that corresponds to your MySQL server version for the
right syntax to use near \'),("\'60\'",),("\'4.9\'",))\' at line 1')
我使用这行代码得到了错误:
cursor.execute("INSERT INTO ps3 (titles, criticalscore, userscore) VALUES (%s,%s,%s)",[item['title'],item['cscore'],item['uscore']])
我一直在使用Stack Overflow Python聊天,很遗憾没有人能够解决这个问题。 如果有任何帮助,这就是我创建表格的方式:
cursor.execute('''CREATE TABLE ps3
(ID INT AUTO_INCREMENT PRIMARY KEY, Title text, CriticalScore text, UserScore text)''')
真的很感激任何帮助。
答案 0 :(得分:1)
以下是应该起作用的:
cursor.execute("""
INSERT INTO
ps3
(titles, criticalscore, userscore)
VALUES
(%s,%s,%s)""",
[item['title'][0] if item['title'] else '',
item['cscore'][0] if item['cscore'] else '',
item['uscore'][0] if item['uscore'] else ''])
但是,不要在管道中进行,而是最好在scrapy蜘蛛中进行,在那里提取数据。