想调用百度翻译,返回值错误具体怎么修改

img


具体是想知道怎么求取sign值,使得翻译任何一个词都可以,还有代码还有什么错误吗?
sign值可不可以普遍求取

要有 id 和密钥的,可能不是免费的api接口

import requests
import random
import json
from hashlib import md5


def translate(word):
    # Set your own appid/appkey.
    appid = 你的appid'
    appkey = '你的appkey'

    # For list of language codes, please refer to `https://api.fanyi.baidu.com/doc/21`
    from_lang = 'zh'
    to_lang = 'en'

    endpoint = 'http://api.fanyi.baidu.com'
    path = '/api/trans/vip/translate'
    url = endpoint + path

    query = word

    # Generate salt and sign
    def make_md5(s, encoding='utf-8'):
        return md5(s.encode(encoding)).hexdigest()

    salt = random.randint(32768, 65536)
    sign = make_md5(appid + query + str(salt) + appkey)

    # Build request
    headers = {'Content-Type': 'application/x-www-form-urlencoded'}
    payload = {'appid': appid, 'q': query, 'from': from_lang,
               'to': to_lang, 'salt': salt, 'sign': sign}

    # Send request
    r = requests.post(url, params=payload, headers=headers)
    result = r.json()

    # Show response
    print(result['trans_result'][0]['dst'])