为什么cursor.with_rows会返回'True`但fetch_one会返回`None`?

时间:2017-08-26 03:39:09

标签: python mysql-connector-python

鉴于此部分功能(以及Python 2.7,mysql-connector 2.1.6):

  File "<ipython-input-18-d06f9976e765>", line 1
    csv_data.loc[['121':'11'],:]
                       ^
SyntaxError: invalid syntax

我希望raw_item永远不是def get_target_item(self, query, key): self._target_query.execute(query, (key,)) if self._target_query.with_rows: raw_item = self._target_query.fetchone() ,但事实证明它有时是None

如果我加上这个:

None

我可以看到有时会打印出来。如果我自己运行相同的查询,我可以看到查询不返回指定键的行。那么 if not raw_item: print "Could not find find target item for query {0} and key {1}".format( query, key ) 为什么会这样做呢?

1 个答案:

答案 0 :(得分:1)

以下是.with_rows的文档说明:

  

返回游标是否可以返回行

     

当列描述可用时,此属性返回True   也可能是需要获取的行。

如您所见,只要光标的description属性不是Nonewith_rows就会返回True

如果您使用的是缓冲光标,则可以检查光标的rowcount属性,以确保它大于0。这应该是一个更好的检查。

我希望这证明有用。