Mysql 1241 操作数应包含 1 列

3 投票
1 回答
2014 浏览
提问于 2025-04-17 23:23

我正在使用scrapy这个工具来抓取信息,并把它存储到mysql数据库里。

相关的代码如下:

def _conditional_insert(self, tx, item):
    if item.get('app_name'):           
        tx.execute("""
            insert into af_appinfo (app_name, app_size, app_data_install, app_icon_url, app_download_url, app_desc) 
            values (%s, %s, %s, %s, %s, %s)""",
            (item['app_name'], item['app_size'], item['app_data_install'], item['icon_url'],item['app_url'], item['app_desc']))

这里是item的定义:

from scrapy.item import Item, Field

class WdjcrawlItem(Item):
  icon_url = Field()
  app_url = Field()
  app_name = Field()
  app_desc = Field()
  app_size = Field()
  app_data_install = Field()

这个爬虫运行得很好。但是在使用mysql的时候出现了一个异常。异常信息是:

_mysql_exceptions.OperationalError: (1241, 'Operand should contain 1 columns)

这个查询有什么错误吗?

1 个回答

0

你有没有把从scapy得到的输出打印出来?因为听起来你想要输入多列的数据,但你的代码或数据库只期待一列数据。你能把你想要放入数据库的scapy输出发出来吗?

祝好,

Dirk

撰写回答