python - 如何从 python 中的 cursor.execute() 中读取所有数据?
问题描述
我使用 PyMysql 连接到我的 MySQL 数据库。
cursor.execute(query)
data = cursor.fetchall()
for (id,clientid,timestamp) in cursor:
print id,clientid,timestamp
我想根据时间戳对数据进行排序;喜欢;
sortedList = sorted(data, key=lambda x: x.timestamp, reverse=False)
但游标返回行。如何返回整个数据,以便根据任何参数对它们进行排序?
ps:这里的数据包含多行,如;
1, '1170', 'AS0001', 1, '1', datetime.datetime(2018, 3, 15, 10, 56), Decimal('15185.7562'), Decimal('0.0000'), Decimal('19814.3181')
解决方案
使用普通的旧游标,您只需执行 cursor.fetchall(),如下所示:
with connection.cursor() as cursor:
cursor.execute("select a, b, c from bar")
print(cursor.fetchall())
哪个输出
[(1,2,3), (4,5,6), ...]
但是,如果您想获得字典格式的结果,请确保连接:
connection = pymysql.connect(db='foo', cursorclass=pymysql.cursors.DictCursor)
在这种情况下,结果将可用于您的 lambda,即:
[{'a':1, 'b':2, 'c': 3}, ...]
推荐阅读
- c - 子进程会按照它们创建的顺序运行和退出吗
- javascript - 使用查找索引从数组中获取对象或在 JavaScript 中的映射键处获取值的更快方法是什么?
- mysql - 将字符串与字段值连接到表中
- php - 在 Laravel 中标准化 API 错误响应(API 资源)
- mule - 在 mule 4 中使用 CORS 的最佳方法是什么?
- python - Blender API:将帧渲染到内存
- javascript - 如何在猫鼬中使用查找
- azure - 认知服务文本翻译认证问题
- c# - 检测浏览器中是否弹出打开文件对话框
- linux - 无法将进程作为服务启动?(代码=退出,状态=203/EXEC)