我有一个表,我想翻译一行的“主题”和“评论”列,并将整个表及其翻译存储到一个新表中。 for 循环似乎并未迭代输入表的所有行。仅第一行存储到新表中。为什么?
database = mysql.connector.connect(user='root', password='root', host='localhost', database='test')
DBcursor = database.cursor(buffered=True)
query = ("SELECT * FROM test_de")
DBcursor.execute(query)
for (id, user_name, date, country, version, score, topic, review, url) in DBcursor:
topic_trans = translate(topic, 'en')
review_trans = translate(review, 'en')
add_translation = ("INSERT INTO test_de_en(id, user_name, date, country, version, score, topic, review, url)"
"VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s)")
translation_data = (id, user_name, date, country, version, score, topic_trans, review_trans, url)
DBcursor.execute(add_translation, translation_data)
database.commit()
DBcursor.close()
database.close()
您在 for 循环内部和外部都使用了变量名称“DBcursor”,因此您将覆盖变量并丢失结果集。
例如,如果您在外部使用 DBcursor1,在内部使用 DBcursor2,那么它应该可以工作。