Python使用pymysql小技巧

yipeiwu_com6年前Python基础

在使用pymysql的时候,通过fetchall()或fetchone()可以获得查询结果,但这个返回数据是不包含字段信息的(不如php方便)。查阅pymysql源代码后,其实获取查询结果源代码也是非常简单的,直接调用cursor.description即可。

譬如:

db = pymysql.connect(...)
cur = db.cursor()
cur.execute(sql)
print(cur.description)
result = cur.fetchall()
data_dict=[]
for field in cur.description:
  data_dict.append(field[0])
print(data_dict)

在pymysql的 pymysql/cursors.py 中,找到 class Cursor 可以看到如下代码:

def __init__(self, connection):
  self.connection = connection
  self.description = None
  self.rownumber = 0
  self.rowcount = -1
  self.arraysize = 1
  self._executed = None
  self._result = None
  self._rows = None
  self._warnings_handled = False

因此,调用 cur.rowcount 是可以迅速返回查询结果记录数的,不需要通过 len() 获得。

相关文章

通过字符串导入 Python 模块的方法详解

通过字符串导入 Python 模块的方法详解

我们平时导入第三方模块的时候,一般使用的是 import 关键字,例如: import scrapy from scrapy.spider import Spider 但是如果各位...

python数据清洗系列之字符串处理详解

python数据清洗系列之字符串处理详解

前言 数据清洗是一项复杂且繁琐(kubi)的工作,同时也是整个数据分析过程中最为重要的环节。有人说一个分析项目80%的时间都是在清洗数据,这听起来有些匪夷所思,但在实际的工作中确实如此。...

Python简单实现enum功能的方法

本文实例讲述了Python简单实现enum功能的方法。分享给大家供大家参考,具体如下: class Enumerate(object): def __init__(self,na...

关于ResNeXt网络的pytorch实现

此处需要pip install pretrainedmodels """ Finetuning Torchvision Models """ from __future__ im...

django表单的Widgets使用详解

前言 不要将Widget与表单的fields字段混淆。表单字段负责验证输入并直接在模板中使用。而Widget负责渲染网页上HTML表单的输入元素和提取提交的原始数据。widget是字段的...