聚合函数结果为 Namedtuple 无法正常工作

问题描述

我有一个使用 COUNT() 聚合函数的存储过程。以下是存储过程:

DELIMITER //

CREATE PROCEDURE UpVoteCount (
    IN tid int
)
BEGIN
    CALL ActiveSession(@ID);
    
    SELECT COUNT(TWEET_ID)
    FROM upVoted
    WHERE ID = tid
END //

DELIMITER ;

当我在查询调用它时,上面的过程工作得很好。但是当我使用 python MysqL.connector 调用它时,我收到以下错误

Traceback (most recent call last):
  File "C:\Users\-\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\python39\site-packages\MysqL\connector\cursor.py",line 1370,in _row_to_python
    named_tuple = NAMED_TUPLE_CACHE[columns]
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.1520.0_x64__qbz5n2kfra8p0\lib\weakref.py",line 134,in __getitem__
    o = self.data[key]()
KeyError: ('COUNT(TWEET_ID)',)

During handling of the above exception,another exception occurred:

Traceback (most recent call last):
  File "E:\cli.py",line 46,in <module>
    print(next(result).fetchall())
  File "C:\Users\-\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\python39\site-packages\MysqL\connector\cursor.py",line 1456,in fetchall
    res.append(self._row_to_python(
  File "C:\Users\-\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\python39\site-packages\MysqL\connector\cursor.py",line 1372,in _row_to_python
    named_tuple = namedtuple('Row',columns)
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.1520.0_x64__qbz5n2kfra8p0\lib\collections\__init__.py",line 390,in namedtuple
    raise ValueError('Type names and field names must be valid '
ValueError: Type names and field names must be valid identifiers: 'COUNT(ID)'

python 代码一个简单的 callproc 并使用 next(results).fetchall() 获取结果,它返回保存过程的结果。 在我进行了一些搜索后,我了解到它使用 namedtuple,但我不知道如何从中获得结果。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...