繁体   English   中英

Python - 列表索引超出范围 - 在一个简单的SELECT语句上?

[英]Python — list index out of range — on a simple SELECT statement?

我是Python的新手,所以也许我犯了一个新手的错误。 但这似乎不是我在这种情况下应该得到的那种错误。

在一个非常简单的SELECT语句中,我得到一个“列表索引超出范围”错误。

  sql = """
        begin tran
        -- Several update statements are in this block.

        commit tran"""
    sql = sql.format(tablename=self.tablename, **self.mappings)
    #print(sql)
    self.cursor.execute(sql, (self.catalog_id,self.catalog_id,self.catalog_id,))


    self.cursor.execute("SELECT CaptionText, DisplayOrder FROM dbo.SizeOrder where CaptionText is not NULL and len(CaptionText)>0")  #This is the line that breaks!

    size_order = {row[0].lower(): row[1] for row in self.cursor}

这是最后一排的下一个突破。 它没有做任何有趣的格式化。 我没有在此问题查询中进行任何替换。 直接针对数据库运行时,它返回超过300条记录。

跟踪输出肯定涉及该行代码。 我真的怀疑下一行b / c它涉及索引。 但执行后的回报没有任何帮助。

    Traceback (most recent call last):
  File "import.py", line 782, in <module>
    main(sys.argv)
  File "import.py", line 167, in main
    db.transform_catalog((len(args)>4 and args[4] == "--skipimages") or (len(args)>5 and args[5] == "--skipimages") )
  File "import.py", line 235, in transform_catalog
    self.do_transform(skipImages)
  File "import.py", line 264, in do_transform
    self.insert_size_types()
  File "import.py", line 501, in insert_size_types
    self.cursor.execute("SELECT CaptionText, DisplayOrder FROM dbo.SizeOrder  where CaptionText is not NULL and len(Capt
ionText)>0")
  File "C:\Python33\lib\site-packages\pypyodbc.py", line 1449, in execute
    self._free_stmt(SQL_CLOSE)
  File "C:\Python33\lib\site-packages\pypyodbc.py", line 1971, in _free_stmt
    check_success(self, ret)
  File "C:\Python33\lib\site-packages\pypyodbc.py", line 986, in check_success
    ctrl_err(SQL_HANDLE_STMT, ODBC_obj.stmt_h, ret, ODBC_obj.ansi)
  File "C:\Python33\lib\site-packages\pypyodbc.py", line 951, in ctrl_err
    state = err_list[0][0]
IndexError: list index out of range

我能做错什么? 谢谢!

肯定是一个bug。 在库的内部结构中进行某些结果处理时出现无关的错误,而不是与输入相关的错误。 DeepSpace的链接可能是原因。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM