*求助* Python 代码求助,谢谢大家

2020-11-17 19:13:19 +08:00
 justincnn

文科生自学 python 两个月,还是看不懂代码,不知道怎么添加想要的内容:

网上抄了一段代码,想在运行之后,直接输出英文和中文内容, 第 43 行的 print 只有原文件的英文内容,如果同时 print 出中文,需要如何修改,谢谢大家,

文科生的极限实在没法,来这里求帮忙

def translateBaidu(content, fromLang='en', toLang='zh'): salt = str(random.randint(32768, 65536)) sign = appid + content + salt + secretKey sign = hashlib.md5(sign.encode("utf-8")).hexdigest()

try:
    paramas = {
        'appid': appid,
        'q': content,
        'from': fromLang,
        'to': toLang,
        'salt': salt,
        'sign': sign
    }
    response = requests.get(apiurl, paramas)
    jsonResponse = response.json()  # 得到返回的结果,结果为 json 格式
    dst: str = str(jsonResponse["trans_result"]
              [0]["dst"])  # 取得翻译后的文本结果
    return dst
except Exception as e:
    print(e)

def excelTrans(srcFilename=r'/Users/justin/Desktop/FANYI.xlsx', desFilename=r'/Users/justin/Desktop/FANYI1.xlsx', srcSheet='Sheet1', srcColumn=1, srcRowBegin=1, srcRowEnd=402, desColumn=1, desSheet='中文品名'): wb = openpyxl.load_workbook(srcFilename) ws = wb[srcSheet] wb2 = Workbook() ws2 = wb2.create_sheet(title=desSheet)

for i in range(srcRowBegin, srcRowEnd, 1):
    result = ws.cell(row=i, column=srcColumn).value
    if not (result is None):
        ws2.cell(row=i-srcRowBegin+1,
                 column=desColumn).value = translateBaidu(result)
    print(result)
wb2.save(desFilename)

if name == 'main': print('translate begin...') excelTrans() print('ending...')

881 次点击
所在节点    问与答
8 条回复
justincnn
2020-11-17 19:14:00 +08:00
print(result) 之后只有原文件的英文,没有中文,这个怎么修改啊,
Vibra
2020-11-17 19:17:13 +08:00
建议 markdown 再写一遍。
Wolfsin
2020-11-17 19:20:56 +08:00
emmm,建议你用 markdown 修饰一下格式,这代码看着太上头了
用法如下
https://www.jianshu.com/p/65ab196bef04
另外盲猜一下,可能是 api 调用出现了问题
justincnn
2020-11-17 19:23:49 +08:00
@Wolfsin

def translateBaidu(content, fromLang='en', toLang='zh'):
salt = str(random.randint(32768, 65536))
sign = appid + content + salt + secretKey
sign = hashlib.md5(sign.encode("utf-8")).hexdigest()

try:
paramas = {
'appid': appid,
'q': content,
'from': fromLang,
'to': toLang,
'salt': salt,
'sign': sign
}
response = requests.get(apiurl, paramas)
jsonResponse = response.json() # 得到返回的结果,结果为 json 格式
dst: str = str(jsonResponse["trans_result"]
[0]["dst"]) # 取得翻译后的文本结果
return dst
except Exception as e:
print(e)


def excelTrans(srcFilename=r'/Users/justin/Desktop/FANYI.xlsx', desFilename=r'/Users/justin/Desktop/FANYI1.xlsx',
srcSheet='Sheet1', srcColumn=1, srcRowBegin=1, srcRowEnd=2,
desColumn=1, desSheet='中文品名'):
wb = openpyxl.load_workbook(srcFilename)
ws = wb[srcSheet]
wb2 = Workbook()
ws2 = wb2.create_sheet(title=desSheet)

for i in range(srcRowBegin, srcRowEnd, 1):
result = ws.cell(row=i, column=srcColumn).value
if not (result is None):
ws2.cell(row=i-srcRowBegin+1,
column=desColumn).value = translateBaidu(result)
print(result+"translate is done")

wb2.save(desFilename)


if __name__ == '__main__':
print('translate begin...')
excelTrans()
print('ending...')
kermitlee
2020-11-17 19:24:35 +08:00
这应该是调用了百度翻译的接口,看代码你的返回结果应该是存在了 /Users/justin/Desktop/FANYI1.xlsx 这份文件里,如果你需要打印翻译的结果的话,去看这行代码 translateBaidu(result) 的返回结果,翻译结果应该就是在这里。
justincnn
2020-11-17 19:34:04 +08:00
@kermitlee 嗯嗯,但是不知道如何写 print 呢,可以帮忙下么?谢谢啊
Wolfsin
2020-11-17 19:36:23 +08:00
我也觉得结果应该在 translateBaidu(result),这个函数的返回值里面,你应该 print(translateBaidu(result)),或者 print(column)看看
kermitlee
2020-11-17 20:13:06 +08:00
@justincnn 这你要把调用的接口 api 文档给找来,不然我也只能瞎猜。试试上面老哥的方法咯

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/726355

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX