已经提出了很多与这个项目相关的问题,但我遇到了太多麻烦,而且我的头发都白了,试图弄清楚。
使用 Python 和 Scrapy 获取网络信息。 我可以使用以下代码将 3 个项目(Title、CriticalScore、UserScore)中的每一个添加到数据库中:
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)''')
非常感谢对此的任何帮助。
最佳答案
这是应该起作用的:
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 spider 中执行,您可以在那里提取数据。
关于python - 向 MySQL 添加信息不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22738170/