python - 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 库来解决这个问题:
import pymysql
然后我改变了光标:
self.mydb.cursor(pymysql.cursors.DictCursor)
现在按预期工作。
推荐阅读
- python - Python async redis 给出错误 AttributeError: __aexit__
- python - 如何在张量流中查找类型或打印变量详细信息\内容
- .htaccess - 在 .htaccess 中结合 -Indexes 和 +MultiViews
- c# - Unity C# 加密错误
- kotlin - 如何在 for-each 中继续逻辑?
- r - shape file > data frame > using ggplot and joining on GEO ID with other data sets
- complexity-theory - Complexity: Is it more efficient to store two objects as variables or as array [2]?
- php - 嘲讽。检查第 100 次调用的参数
- python - Python:“re”模块包含在“Tkinter”模块中?
- php - MySQLi and PDO in mariaDB with PHP7