如何在 SQLAlchemy 对象上使用 googletrans 的翻译器

How to use googletrans's Translator on SQLAlchemy object

我正在尝试使用 googletransTranslator 函数翻译云 MySQL table 中的几列。

import pandas as pd
import googletrans
from googletrans import Translator
import sqlalchemy
import pymysql
import numpy as np
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker

engine = create_engine("mysql+pymysql:......")
Session = sessionmaker(bind = engine)
session = Session()
translator = Translator()

这里我看了MySQL table:

sql_stmt = "SELECT * FROM translate"
data = session.execute(sql_stmt)

然后我试着翻译一下:

for to_translate in data:
    data.col1_Translated = translator.translate(to_translate.col1, dest = 'en')
    data.col2_Translated = translator.translate(to_translate.col2, dest = 'en')

但是当我尝试查看是否使用以下代码进行了翻译时,我没有得到任何输出。

for rows in data:
    print(rows.col1, rows.col1_Translated, rows.col2, rows.col2_Translated)

我是 SQLALchemy 的新手,无法找到解决方案。谁能告诉我哪里出错了,以及如何访问列和应用翻译功能。

如果我没记错你想要:

for to_translate in data:
    to_translate.col1_Translated = translator.translate(to_translate.col1, dest = 'en')
    # instead of:
    # data.col1_Translated = ...
    to_translate.col2_Translated = translator.translate(to_translate.col2, dest = 'en')

对吧?您正在分配给 data.col1_Translated,因此它在循环的每次传递中都会被覆盖。

如果这不是问题,请尝试:

for to_translate in data:
    print(translator.translate(to_translate.col1, dest = 'en'))
    print(translator.translate(to_translate.col2, dest = 'en'))

只是想看看有没有什么东西被翻译了。如果是,你想对翻译做什么?