V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
python30
V2EX  ›  Python

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

  •  
  •   python30 · 2021-02-15 00:25:13 +08:00 · 1813 次点击
    这是一个创建于 1396 天前的主题,其中的信息可能已经有所发展或是发生改变。

    就是查询有没有这个字,如果查到这个字就更新这个字的 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 更新 语句是不是有问题?

    谢谢

    10 条回复    2021-02-16 14:07:19 +08:00
    yeqizhang
        1
    yeqizhang  
       2021-02-15 00:43:53 +08:00 via Android
    aa 加引号
    lpts007
        2
    lpts007  
       2021-02-15 00:43:55 +08:00 via Android
    啥意思,python 里面为啥可以直接就 update 语句?
    自己不奇怪 select 带引号吗?
    superrichman
        3
    superrichman  
       2021-02-15 09:37:26 +08:00 via iPhone
    啊 这... python 里直接写 sql
    python30
        4
    python30  
    OP
       2021-02-15 10:09:52 +08:00
    @yeqizhang
    @lpts007
    @superrichman
    只会 python 不会 sql 啊
    正确的语句怎么写?
    lpts007
        5
    lpts007  
       2021-02-15 11:19:15 +08:00 via Android
    @python30 只会 python ?说这种话你是认真的?

    你先看下你这个函数有几个 sql 语句,然后想一下为什么第一个不报错,再仿照第一个写不就行了吗。
    jeeyong
        6
    jeeyong  
       2021-02-15 11:52:47 +08:00
    @lpts007 我不管我不管, 喂给我, 喂给我....
    ErwinCheung
        7
    ErwinCheung  
       2021-02-15 13:43:40 +08:00
    我不管我不管, 喂给我, 喂给我....
    nuistzhou
        8
    nuistzhou  
       2021-02-15 16:01:28 +08:00 via iPhone
    看来是个小 newbee, 你下面的那句 update 的 sql 语句要放在 execute 函数里执行的,而且是作为字符串传入的,所以还得加引号。就像你上面第一句 sql 语句一样。盲猜前半部分代码是你 ctl
    c + v 过来的?
    python30
        9
    python30  
    OP
       2021-02-15 16:11:05 +08:00
    @nuistzhou
    @lpts007
    仿了。正在调试。谢谢
    deplives
        10
    deplives  
       2021-02-16 14:07:19 +08:00
    现在说 会 python 的门槛真低啊
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3037 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 11:54 · PVG 19:54 · LAX 03:54 · JFK 06:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.