pymysql fetchall()结果为字典?

Ric*_*cky 43 python mysql

有没有办法使用pymysql从fetchall()获取结果作为字典?

Seu*_*ewa 75

PyMySQL包括一个DictCursor.它做我认为你想要的.以下是如何使用它:

import pymysql
connection = pymysql.connect(db="test")
cursor = connection.cursor(pymysql.cursors.DictCursor)
cursor.execute("SELECT ...")
Run Code Online (Sandbox Code Playgroud)

https://github.com/PyMySQL/PyMySQL/blob/master/pymysql/tests/test_DictCursor.py


Mar*_*ery 28

使用pymysql.cursors.DictCursor,它将返回表示为将列名称映射到值的字典的行.

几种使用它的方法......

创建一个连接对象,并从中生成所有游标DictCursor:

>>> import pymysql
>>> connection = pymysql.connect(db='foo', cursorclass=pymysql.cursors.DictCursor)
>>> with connection.cursor() as cursor:
...     print cursor
... 
<pymysql.cursors.DictCursor object at 0x7f87682fefd0>
>>> with connection.cursor() as cursor:
...     cursor.execute("SELECT * FROM bar")
...     print cursor.fetchall()
... 
2
[{u'col2': 'rty', u'col1': 'qwe'}, {u'col2': 'fgh', u'col1': 'asd'}]
Run Code Online (Sandbox Code Playgroud)

DictCursor从普通连接对象创建一个:

>>> connection = pymysql.connect(db='foo')
>>> with connection.cursor(pymysql.cursors.DictCursor) as cursor:
...     print cursor
... 
<pymysql.cursors.DictCursor object at 0x7f876830c050></code></pre>
Run Code Online (Sandbox Code Playgroud)

连接并创建DictCursor一个一行with:

>>> from pymysql.cursors import DictCursor
>>> with pymysql.connect(db='foo', cursorclass=DictCursor) as cursor:
...     print cursor
... 
<pymysql.cursors.DictCursor object at 0x7f8767769490>
Run Code Online (Sandbox Code Playgroud)


d0n*_*nut 3

在cursor()方法中使用DictCursor 。