有源码的python在线翻译为啥报错呢?
本帖最后由 冥界3大法王 于 2020-12-2 13:44 编辑https://fanyi.caiyunapp.com/#/api
令牌我已经申请下来了。
def tranlate(source, direction):
import requests
import json
url = "http://api.interpreter.caiyunai.com/v1/translator"
#WARNING, this token is a test token for new developers, and it should be replaced by your token
token = "3975l6lr5pcbvidl6jl2"
payload = {
"source" : source,
"trans_type" : direction,
"request_id" : "demo",
"detect": True,
}
headers = {
'content-type': "application/json",
'x-authorization': "token " + token,
}
response = requests.request("POST", url, data=json.dumps(payload), headers=headers)
return json.loads(response.text)['target']
source = ["Lingocloud is the best translation service.","彩云小译は最高の翻訳サービスです"]
target = tranlate(source, "auto2zh")
print(target)
土豹子不会玩。{:301_1008:} 求指点迷津,谢谢。
大饭桶一个,没学过post
顶上说的执行下述 BASH 命令创建命令行工具 xiaoyi.sh听不明白。。。{:301_972:} pycharm直接运行的结果:
['小译翻译是最好的翻译服务。', '彩云小译是最好的翻译服务']
看看是不是包没有载入 2楼正解 确实可以跑出来
但是报错报的也很明显了
json.loads(response.text)['target']
这个json -> json.loads(response.text)
里面没有target
api的问题, 你把json 输出出来看一下就好了
或者修改为这样:
response = requests.request("POST", url, data=json.dumps(payload), headers=headers)
res_json = json.loads(response.text)
if 'target' in res_json:
return res_json['target']
else:
returnres_json 这不是明显的服务器返回的json里面没有target这个key吗......你看一下服务器具体返回的什么数据,再根据key去取具体的值啊.... response = requests.request("POST", url, data=json.dumps(payload), headers=headers)
pzx521521 发表于 2020-12-2 13:57
2楼正解 确实可以跑出来
但是报错报的也很明显了
json.loads(response.text)['target']
@pzx521521
求完整的代码,菜鸟不太会玩。惭愧啊~~ 就把key换了下,就又好了。{:301_1009:} 楼上的都是大神,完全看不懂这些代码。刚开始学。刚弄懂什么是if esle 没看明白,也不懂
页:
[1]