python - 向 MySQL 添加信息不起作用

标签 python mysql database row

已经提出了很多与这个项目相关的问题,但我遇到了太多麻烦,而且我的头发都白了,试图弄清楚。

使用 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/

相关文章:

python - 为什么我的 CSS 样式不会显示在 Flask 应用程序上

python - 一维数组的加权平滑 - Python

python - 识别 Pandas 数据框中的重复项

mysql - MySQL 转储的完整数据库重置?

python - 在python中将不规则时间序列转换为每小时数据并具有正态分布

mysql - MYSQL where 子句中的条件

php - 从数据库中获取相同列名的图像

php - Laravel Eloquent 不将模型保存到数据库

python - CharField 最大长度 2^n 与 2^n-1

java - Tomcat 数据库连接池未在 websocket 服务器端点中提供连接