![](/img/trans.png)
[英]AttributeError: 'DictCursor' object has no attribute 'excute'
[英]AttributeError 'DictCursor' object has no attribute 'update'
我正在尝试将一些 csv 文件导入到 MySQL 数据库上的表中。 csv 文件每天更新,我打算在 python 中使用这个程序来自动化这个过程。 这个想法是:如果信息已经存在,我想更新。 如果信息不存在,我想插入数据。
但我有这个错误:
AttributeError 'DictCursor' object 没有属性 'update'
提前致谢。
csv_data = csv.reader(open('ATEG_REGIONAL_MG_DADOS_TB_ATIVIDADE.csv', encoding='ISO-8859-15'), delimiter=';')
next(csv_data)
for row in csv_data:
for i, l in enumerate(row):
if row[i] == '':
row[i] = None
cursor.execute('SELECT * FROM atividade WHERE CD_ATIVIDADE=%s', row[0])
if cursor.fetchall():
cursor.update('UPDATE atividade WHERE CD_ATIVIDADE = row[0]'),
else:
cursor.execute('INSERT INTO atividade (CD_ATIVIDADE, NM_ATIVIDADE, ST_ATIVO, COD_USUARIO_INCLUSAO, COD_USUARIO_ALTERACAO, DAT_INCLUSAO, DAT_ALTERACAO, CO_ATIVIDADE_REZOLVE, ROWID, FLG_SAFRA, FLG_PRODUTIVO, FLG_TIPO_ATIVIDADE, FLG_INDICADOR_ISA) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)', row)
# close the connection to the database.
db.commit()
cursor.close()
print("Imported!")
如果您使用的是 psycopg2,则不存在cursor.update()
function。 尝试cursor.execute()
代替。
在您的查询中, row[0] 也被视为字符串。 因此,将其更改为:
cursor.execute('UPDATE atividade WHERE CD_ATIVIDADE = %d', int(row[0]))
似乎您混淆了两个不同的库。 import MySQLdb
和from flask_mysqldb import MySQL
是两个不同的库。
由于您使用的是flask
添加此行app.config['MYSQL_CURSORCLASS'] = 'DictCursor'
然后调用 cursor cursor=db.connection.cursor()
应该可以解决您的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.