推荐学习书目
› 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 · Jan 10, 2016 · 3880 views
    This topic created in 3951 days ago, the information mentioned may be changed or developed.

    本人初学 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 replies  •  2016-01-12 10:08:33 +08:00
    iewgnaw
    iewgnaw
    Jan 10, 2016
    1
    获取和更新用了同一个游标吧
    HanSonJ
    HanSonJ
    OP
    Jan 11, 2016
    2
    @iewgnaw 对!后来发现忘了发上来了,这么少信息你都能知道也算屌,犯 2 了
    billgreen1
    billgreen1
    Jan 11, 2016
    3
    问一下你们的 sql 语句都是 raw sql 嘛?
    HanSonJ
    HanSonJ
    OP
    Jan 11, 2016
    4
    @billgreen1 我因为刚学,所以写的都是原生的,今天找了 ORM ,慢慢一步来,正常都不会写 raw sql 吧
    jamiesun
    jamiesun
    Jan 12, 2016
    5
    self.cursor 不是正确的姿势
    HanSonJ
    HanSonJ
    OP
    Jan 12, 2016
    6
    @jamiesun 因为每次都要定义这个游标所以我干脆写成了全局变量了 (掩脸逃
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2027 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 16:28 · PVG 00:28 · LAX 08:28 · JFK 11:28
    ♥ Do have faith in what you're doing.