Python MySQL 连接器 fetchone 不返回字典
Python MySQL Connector fetchone not returning dict
我有 table 个用户,我想在 Flask 应用程序中显示。我一直在尝试获取要在控制台中打印出来的值,但我似乎无法弄清楚如何使用键(即字段名称)来做到这一点。我有以下内容:
cur = CONN.cursor()
cur.execute("SELECT * FROM users")
users = cur.fetchone()
print(users)
输出为:
(1, 0, 'James', 'Brubacker', 'Anaheim', 1)
当我这样做时:
print(users['first_name'])
我得到:
TypeError: tuple indices must be integers or slices, not str
我假设 fetchone() return 默认情况下编辑了一个命令,但事实并非如此。我怎样才能把它写成 return 字典?
否,fetchone
默认 returns 一个元组。这是 dbAPI 标准的一部分。您可以说 cur = CONN.cursor(dictionary=True)
,如精美文档中所述。
fetchone() 和 fetchall() return 元组默认不是字典。要访问元组中的数据,如果要检索第一个元素,则应使用索引然后执行 row[0]
并且可以通过 users['first_name']
.
访问
如果您需要以字典形式获取结果,请使用以下任一选项,
选项 1
在 MySQLdb.connect.
的末尾添加参数 cursorclass=MySQLdb.cursors.DictCursor
样本
conn = MySQLdb.connect(host="host",
user="username",
passwd="password",
db="databasename",
cursorclass=MySQLdb.cursors.DictCursor)
选项 2
更新与return字典的连接
样本
cur = CONN.cursor(dictionary=True)
cur.execute("SELECT * FROM users")
users = cur.fetchone()
print(users['first_name'])
我有 table 个用户,我想在 Flask 应用程序中显示。我一直在尝试获取要在控制台中打印出来的值,但我似乎无法弄清楚如何使用键(即字段名称)来做到这一点。我有以下内容:
cur = CONN.cursor()
cur.execute("SELECT * FROM users")
users = cur.fetchone()
print(users)
输出为:
(1, 0, 'James', 'Brubacker', 'Anaheim', 1)
当我这样做时:
print(users['first_name'])
我得到:
TypeError: tuple indices must be integers or slices, not str
我假设 fetchone() return 默认情况下编辑了一个命令,但事实并非如此。我怎样才能把它写成 return 字典?
否,fetchone
默认 returns 一个元组。这是 dbAPI 标准的一部分。您可以说 cur = CONN.cursor(dictionary=True)
,如精美文档中所述。
fetchone() 和 fetchall() return 元组默认不是字典。要访问元组中的数据,如果要检索第一个元素,则应使用索引然后执行 row[0]
并且可以通过 users['first_name']
.
如果您需要以字典形式获取结果,请使用以下任一选项,
选项 1
在 MySQLdb.connect.
的末尾添加参数 cursorclass=MySQLdb.cursors.DictCursor样本
conn = MySQLdb.connect(host="host",
user="username",
passwd="password",
db="databasename",
cursorclass=MySQLdb.cursors.DictCursor)
选项 2
更新与return字典的连接
样本
cur = CONN.cursor(dictionary=True)
cur.execute("SELECT * FROM users")
users = cur.fetchone()
print(users['first_name'])