scrapy 采集入为库 mysql 数据库,只更新一个字段 提示这个语法错误?

2021-02-15 00:25:13 +08:00
 python30

就是查询有没有这个字,如果查到这个字就更新这个字的 bsmc 字段 表是 news_topic 插入代码如下:

	def insert_into_info(self, conn, item):
		print ('starts...')
		ziinfo = item['zi']
		conn.execute("""select 1 from news_topic where zi = %s""", (ziinfo, ))
		ret = conn.fetchone()
		tp_id = int(conn.lastrowid)
		print ('aaaaaaaaaaa')
		if ret:
			print(u'开始更新这条数据')
			UPDATE news_topic SET bsmc = item['bsmc'] WHERE id = tp_id;
			pass
		else:
			pass

提示如下图错误

不知道 mysql 更新 语句是不是有问题?

谢谢

1647 次点击
所在节点    Python
10 条回复
yeqizhang
2021-02-15 00:43:53 +08:00
aa 加引号
lpts007
2021-02-15 00:43:55 +08:00
啥意思,python 里面为啥可以直接就 update 语句?
自己不奇怪 select 带引号吗?
superrichman
2021-02-15 09:37:26 +08:00
啊 这... python 里直接写 sql
python30
2021-02-15 10:09:52 +08:00
@yeqizhang
@lpts007
@superrichman
只会 python 不会 sql 啊
正确的语句怎么写?
lpts007
2021-02-15 11:19:15 +08:00
@python30 只会 python ?说这种话你是认真的?

你先看下你这个函数有几个 sql 语句,然后想一下为什么第一个不报错,再仿照第一个写不就行了吗。
jeeyong
2021-02-15 11:52:47 +08:00
@lpts007 我不管我不管, 喂给我, 喂给我....
ErwinCheung
2021-02-15 13:43:40 +08:00
我不管我不管, 喂给我, 喂给我....
nuistzhou
2021-02-15 16:01:28 +08:00
看来是个小 newbee, 你下面的那句 update 的 sql 语句要放在 execute 函数里执行的,而且是作为字符串传入的,所以还得加引号。就像你上面第一句 sql 语句一样。盲猜前半部分代码是你 ctl
c + v 过来的?
python30
2021-02-15 16:11:05 +08:00
@nuistzhou
@lpts007
仿了。正在调试。谢谢
deplives
2021-02-16 14:07:19 +08:00
现在说 会 python 的门槛真低啊

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/753338

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX