python - Scrapy MySQL : MySQLdb. _exceptions.ProgrammingError: 并非所有参数都在字节格式化期间转换

标签 python mysql scrapy

当我运行我的代码时,出现以下错误。

2019-10-22 09:14:24 [scrapy.utils.signal] ERROR: Error caught on signal handler: BooksSpider.close of > Traceback (most recent call last): File "/home/mx/python-virtual-environments/scrapy/lib/python3.5/site->packages/MySQLdb/cursors.py", line 204, in execute query = query % args TypeError: not all arguments converted during bytes formatting

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "/home/mx/python-virtual-environments/scrapy/lib/python3.5/site->packages/twisted/internet/defer.py", line 151, in maybeDeferred result = f(*args, **kw) File "/home/mx/python-virtual-environments/scrapy/lib/python3.5/site->packages/pydispatch/robustapply.py", line 55, in robustApply return receiver(*arguments, **named) File "/home/mx/Desktop/books_crawler/books_crawler/spiders/books_SQL.py", line 79, in close cursor.execute("INSERT IGNORE INTO books_table(title, description, rating, upc, >availability)" "VALUES('%s', '%s', '%s', '%s')", row) File "/home/mx/python-virtual-environments/scrapy/lib/python3.5/site->packages/MySQLdb/cursors.py", line 206, in execute raise ProgrammingError(str(m)) MySQLdb._exceptions.ProgrammingError: not all arguments converted during bytes formatting

我尝试用多种方式重新格式化“%s”,但不知道我做错了什么。

这是我的代码片段: >

csv_data = csv.reader(open(csv_file))

   row_count = 0
   for row in csv_data:
       if row_count != 0:
           cursor.execute("INSERT IGNORE INTO books_table(title, description, rating, upc, >availability) VALUES('%s', '%s', '%s', '%s')", row)
       row_count += 1

   mydb.commit()
   cursor.close()

最佳答案

正在检查 mysql website , 参数没有用单引号引起来。可能想试试这个。我还删除了可用性列中更大的 > 符号。

row_count = 0
   for row in csv_data:
       if row_count != 0:
           cursor.execute("INSERT IGNORE INTO books_table(title, description, rating, upc, availability) VALUES(%s, %s, %s, %s)", row)
       row_count += 1

   mydb.commit()
   cursor.close()

关于python - Scrapy MySQL : MySQLdb. _exceptions.ProgrammingError: 并非所有参数都在字节格式化期间转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58499218/

相关文章:

python - Pandas 累积符号概念

python - Python 中的 call/cc — 可能吗?

python - 将内容直接发送到 scrapy pipeline

python - TensorFlow 中 Tensor 的部分更新

Python:共享 os.system 调用的命令行参数

MySql - 创建一个表并在同一过程中从中选择

mySQL:选择 * 结合 UNIX_TIMESTAMP

php - 如何确保 sql 表未锁定/停止并发 cron

python - scrapy-playwright :- Downloader/handlers: scrapy. exceptions.NotSupported: AsyncioSelectorReactor

python - 非阻塞 Scrapy 管道到数据库