向 MySQL 添加信息无法工作

2024-09-29 21:28:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经提出了很多与这个项目有关的问题,但是我遇到了太多的麻烦,我正在努力解决这个问题

使用Python和Scrapy获取web信息。 我可以使用以下代码将3个项目(标题、关键分数、用户分数)分别添加到数据库中:

cursor.execute("INSERT INTO ps3 (userscore) VALUES (%s)",[item['uscore']])

现在这样做很好,它把它们放在上升的行中,这一切都很好。 但是,我需要将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']])

我一直在进行堆栈溢出Python聊天,不幸的是,没有人能找到答案。 如果有任何帮助,这就是我创建表的方式:

cursor.execute('''CREATE TABLE ps3 
    (ID INT AUTO_INCREMENT PRIMARY KEY, Title text, CriticalScore text, UserScore text)''') 

非常感谢您的帮助


Tags: 项目代码textexecutetitleitemcursor分数
1条回答
网友
1楼 · 发布于 2024-09-29 21:28:25

以下是应该采取的措施:

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中,在那里提取数据

相关问题 更多 >

    热门问题