gpt4 book ai didi

Python MySQLdb "with"语法和 DictCursor

转载 作者:行者123 更新时间:2023-11-30 23:38:05 25 4
gpt4 key购买 nike

我正在尝试使用 DictCursorwith block 。我认为通过使用:

with MySQLdb.connect(...) as c:

c 将是一个连接对象,因为这就是 connect() 返回的内容。但可惜,事实并非如此!突然间,c 变成了一个光标!虽然这通常很方便,但我真的很喜欢使用 DictCursor - 这根本不是这样设计的吗?将 DictCursor 括起来作为“作用域对象”会导致错误(__exit__ 未定义)

最佳答案

根据这里MySQLdb中Connection的定义line 254 of connections.py , Connection.cursor() 将返回 Connection.cursorclass 的实例:

def cursor(self, cursorclass=None):
"""
Create a cursor on which queries may be performed. The
optional cursorclass parameter is used to create the
Cursor. By default, self.cursorclass=cursors.Cursor is
used.
"""
return (cursorclass or self.cursorclass)(self)

所以,我想如果你用参数“cursorclass”初始化连接,并将其设置为 MySQLdb.cursors.DictCursor,例如:

dbconn = MySQLdb.connect(cursorclass=MySQLdb.cursors.DictCursor)

什么时候来

def __enter__(self):
if self.get_autocommit():
self.query("BEGIN")
return self.cursor()

它将返回一个字典光标。

关于Python MySQLdb "with"语法和 DictCursor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14880330/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com