首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PyMySQL和OrderedDict

PyMySQL和OrderedDict
EN

Stack Overflow用户
提问于 2015-11-03 16:59:29
回答 1查看 2.3K关注 0票数 11

我使用PyMySQL已经有一段时间了,并且创建了我自己的包装器,我习惯于速写查询。尽管如此,我还是用OrderedDict创建了CSV文件,因为我需要保持相同的顺序,但我意识到,如果我使用PyMySQL查询数据库,我将无法获得数据库返回的顺序。这是有点烦人的现场检查CSV文件,如果我只想转储的东西,而不是手工写订单。

我的问题是,如何将PyMySQL与OrderedDict结合使用?目前,我的代码如下:

代码语言:javascript
复制
import pymysql
conn = pymysql.connect(host='localhost', user='root', passwd='', db='test')
cursor = conn.cursor(pymysql.cursors.DictCursor)

因此,每当我查询时,我都会得到一本字典:

代码语言:javascript
复制
cursor.execute("""SELECT * FROM test""")
for row in cursor:
    pp(row)  # gives me dictionary

我想要的是,当我滚动游标时,我实际上是按列从数据库中的顺序检索列的OrderedDict。

类似于:

代码语言:javascript
复制
cursor = conn.cursor(pymysql.cursors.OrderedDict)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-03 17:03:53

您可以使用cursors.DictCursorMixin并将其dict_type更改为collections.OrderedDict (默认为dict):

代码语言:javascript
复制
from collections import OrderedDict
from pymysql.cursors import DictCursorMixin, Cursor

class OrderedDictCursor(DictCursorMixin, Cursor):
    dict_type = OrderedDict

然后,您可以使用新的游标类,如下所示

代码语言:javascript
复制
cursor = conn.cursor(OrderedDictCursor)
票数 19
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33504938

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档