我使用PyMySQL已经有一段时间了,并且创建了我自己的包装器,我习惯于速写查询。尽管如此,我还是用OrderedDict创建了CSV文件,因为我需要保持相同的顺序,但我意识到,如果我使用PyMySQL查询数据库,我将无法获得数据库返回的顺序。这是有点烦人的现场检查CSV文件,如果我只想转储的东西,而不是手工写订单。
我的问题是,如何将PyMySQL与OrderedDict结合使用?目前,我的代码如下:
import pymysql
conn = pymysql.connect(host='localhost', user='root', passwd='', db='test')
cursor = conn.cursor(pymysql.cursors.DictCursor)因此,每当我查询时,我都会得到一本字典:
cursor.execute("""SELECT * FROM test""")
for row in cursor:
pp(row) # gives me dictionary我想要的是,当我滚动游标时,我实际上是按列从数据库中的顺序检索列的OrderedDict。
类似于:
cursor = conn.cursor(pymysql.cursors.OrderedDict)发布于 2015-11-03 17:03:53
您可以使用cursors.DictCursorMixin并将其dict_type更改为collections.OrderedDict (默认为dict):
from collections import OrderedDict
from pymysql.cursors import DictCursorMixin, Cursor
class OrderedDictCursor(DictCursorMixin, Cursor):
dict_type = OrderedDict然后,您可以使用新的游标类,如下所示
cursor = conn.cursor(OrderedDictCursor)https://stackoverflow.com/questions/33504938
复制相似问题