gpt4 book ai didi

python - Scrapy Mysql插入报错

转载 作者:行者123 更新时间:2023-11-30 22:40:07 25 4
gpt4 key购买 nike

我正在尝试使用 Scrapy 将抓取的项目保存在 MySQL 中,我的代码运行起来就像 scrapy 0.24 的魅力一样,尽管在 1.0.1 中我有 mysql 错误,我无法理解它们来自哪里。

我的部分管道:

def process_item(self, item, spider):    
if item['date'] != "":
try:
sql = ("INSERT INTO "+item['tablename']+" VALUES (%s, %s, %s, %s, %s, %s)")
self.cursor.execute(sql,
(
item['id'],
item['title'],
item['link'],
item['body'],
item['date'],
json.dumps(item['images'])
))
self.conn.commit()
except MySQLdb.Error, e:
print "************** Error ************"
print "Error %d: %s" % (e.args[0], e.args[1])
print "************** End ************"
return item

我插入的示例值:

 id : 234264953566255283759266697433875136366452113806L
date : 'September 10, 2014'
images : {'checksum': '839ea50f9275a821975e0b70ca8838df',
'path': 'full/4b1fc7128e958c47b451936d6b5636b6ddfd2b14.jpg',
'url': 'http://content.domain.com/origin/Spaces/Production/Cms/POLL/n64wjrlnh0ayoe2gxo26-q.png'}
link : 'http://www.example.com/178400/xxxxxx-xxxx-xxxx-xxx-xx.aspx'
body : '<div class="articlecontent" itemprop="articleBody"> \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n <p>lorem ipsums</p>\r\n<p style="text-align:center">'
title : 'German Leadership Vies With U.S. in Global Popularity'

输出错误:

  ************** Error ************
Error 1064: You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near
'), 'http://www.example.com/178400/xxxxxx-xxxx-xxxx-xxx-xx.aspx' at line 1
************** End ************

通过在终端中打印查询将要执行的方式,我得到:

   INSERT INTO tablename VALUES      (1245845410931227995499360226027473197403882391305, 
("\'lorem Ipsum\'",),
'http://www.example.com/178400/xxxxxx-xxxx-xxxx-xxx-xx.aspx',
(),
(),
'[]')",

我认为已经添加了额外的逗号“,”,但我不知道为什么或如何修复它。感谢任何帮助,如果需要,我可以提供任何其他信息。

****** 编辑 ******

在我将 %s 的值从“%s”更改为“?”之后我得到一个不同的错误

   TypeError: not all arguments converted during string formatting

on the line : json.dumps(item['images'])

最佳答案

通过类型转换解决的问题

   json.dumps(item['images'])

像这样的字符串:

   str(json.dumps(item['images']))

我真的不知道这是否是最好的方法,甚至不知道为什么需要这样做,因为在 0.24 版中它不是必需的,但它现在可以工作,数据正常插入我的数据库中。

关于python - Scrapy Mysql插入报错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31360586/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com