【发布时间】:2021-09-08 11:21:12
【问题描述】:
我有一个从 mysql 数据库中获取信息的功能:
def get_group_members_from_db():
dbName = get_environ('DBNAME')
# Establish connection to database
try:
db = db_establish_connection()
if db:
# report count sessions by role, agent version, agent type, and realm
sql = (
'SELECT T1.field1, T1.field2, T1.field3, T1.field4, T1.field5 '
'FROM ' + dbName + '.table AS T1 '
'GROUP BY T1.field1, T1.field2, T1.field3, T1.field4, T1.field5; '
)
cursor = db.cursor()
cursor.execute(sql)
result = cursor.fetchall()
cursor.close()
db.disconnect()
#print(result)
return result
except Exception as ex:
print(ex)
以及另一个将新表插入数据库的函数:
def finding_unique_users(db,dbName):
# Establish connection to database
try:
users = get_group_members_from_db()
if db:
# report count sessions by role, agent version, agent type, and realm
sql = (
'INSERT INTO ' + dbName + ' .table2 ( '
'fieldA, fieldB, fieldC, fieldD, fieldE, fieldF ) '
'VALUES ('
'%s,%s,%s,%s,%s);'
)
values = list()
for user in users:
#print(users)
if user['fieldA']:
values.append((
user['fieldA'],
user['fieldB'],
user['fieldC'],
user['fieldD'],
user['fieldE'],
user['fieldF']
))
cursor = db.cursor()
cursor.execute('TRUNCATE TABLE ' + dbName + '.table2;')
cursor.executemany(sql,values)
db.commit()
result = cursor.fetchall()
cursor.close()
return result
except Exception as ex:
print(ex)
运行时遇到一个错误,提示元组索引必须是整数或切片,而不是 str。当我从数据库中打印出用户时,我收到了一个元组。请帮助我进一步纠正此错误。
【问题讨论】:
-
这能回答你的问题吗? Python, MySQL and SELECT output to dictionary with column names for keys 你不能访问
user['fieldA']因为user是一个元组,你需要将用户作为一个dict(链接的问题)或通过索引访问字段
标签: python function error-handling tuples