Python MySQL 字典准备语句抛出错误

标签 python mysql

我尝试将准备好的语句的结果直接提取到字典中,但出现错误:

ValueError: Cursor not available with given criteria: buffered, dictionary, prepared

我读到这是由于默认情况下游标没有被缓冲,但我启用了缓冲,结果没有变化。

完整代码如下。

import mysql.connector

def __init__(self):
    self.mydb= mysql.connector.connect(
        host="host",
        user="user",
        passwd="password",
        database="db",
        buffered=True
    )
    self.cur = self.mydb.cursor(prepared=True, dictionary=True)
    self.fetch_permit = """SELECT PERMIT_ID,BUILDER_BUSINESS_NAME, BUILDER_ZIP_CODE, BUILDER_PHONE_NUMBER
     FROM MASTER_TABLE WHERE permit_id = %s """

def getPermits(self,permit_id):
    permits = self.cur.executemany(self.fetch_permit, permit_id)
    return permits

info.getPermits(permit_id='1000') # throws error

最佳答案

可能不是最好的解决方案,但我能够通过更改我正在使用的 mySQL 库来解决问题:

导入pymysql

然后我改变了光标:

self.mydb.cursor(pymysql.cursors.DictCursor)

现在按预期工作。

关于Python MySQL 字典准备语句抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56756368/

相关文章:

python - BS4 从所有 DIV 标签中获取文本,但不包括子标签

python - 如何将其他 Python 解释器设置为 IPython

python - 在 3 维图像上覆盖具有透明度的蒙版

python - 分解 numpy 代码

python - 将 2 个暗数组 'list of lists"输出到 python 中的文本文件

python - 从不同的Python模块调用数据库对象

mysql - 尽管主记录为空,LEFT JOIN 应该如何返回值?

php - Laravel Spatie 媒体库 model_type 没有默认值

mysql - 想要正确设置 innodb 配置变量吗?想知道什么变量大小最适合 mysql 5.5

Mysql查询速度很慢 如何优化查询?