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
HanSonJ
V2EX  ›  Python

求助 pymysql 的正确使用方法

  •  
  •   HanSonJ ·
    HanSon · 2016 年 1 月 10 日 · 3406 次点击
  •   查看本主题需要登录
    这是一个创建于 3677 天前的主题,其中的信息可能已经有所发展或是发生改变。

    本人初学 python ,希望有高人相助

    我通过 SQL 查询出来的数据,对这个游标进行遍历,对每个遍历的数据做一个 SQL 的操作,然后很神奇的执行完 SQL 然后 for 循环就结束了,我把 SQL 执行的调用语句注释掉是可以全部遍历的,不知大家有没有这方面的经验

    伪代码如下:

    ms = mysql.Mysql()
      result = ms.get_all_data()#全部游标数据
      for data in result:
          print("begin")
          try:
             ...
          sql_insert()
        except ...:
          ....
        print("continue")
    

    在这种情况下,所有输出都正常输出,但只输出一次,没有进行遍历

    假若把 sql_insert()的方法注释掉,两个输出都会一直遍历正常输出

    sql_insert() 这个方法的大致内容如下

    sql = "..."
    self.cursor.excute(sql, (...))
    self.conn.commit()
    
    6 条回复    2016-01-12 10:08:33 +08:00
    iewgnaw
        1
    iewgnaw  
       2016 年 1 月 10 日
    获取和更新用了同一个游标吧
    HanSonJ
        2
    HanSonJ  
    OP
       2016 年 1 月 11 日
    @iewgnaw 对!后来发现忘了发上来了,这么少信息你都能知道也算屌,犯 2 了
    billgreen1
        3
    billgreen1  
       2016 年 1 月 11 日
    问一下你们的 sql 语句都是 raw sql 嘛?
    HanSonJ
        4
    HanSonJ  
    OP
       2016 年 1 月 11 日
    @billgreen1 我因为刚学,所以写的都是原生的,今天找了 ORM ,慢慢一步来,正常都不会写 raw sql 吧
    jamiesun
        5
    jamiesun  
       2016 年 1 月 12 日
    self.cursor 不是正确的姿势
    HanSonJ
        6
    HanSonJ  
    OP
       2016 年 1 月 12 日
    @jamiesun 因为每次都要定义这个游标所以我干脆写成了全局变量了 (掩脸逃
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   2167 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 15:13 · PVG 23:13 · LAX 07:13 · JFK 10:13
    ♥ Do have faith in what you're doing.