de20050138 2020-07-12 22:53 采纳率: 20%
浏览 7200
已采纳

raise JSONDecodeError("Expecting value", s, err.value) from None json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

不知道错误在那,求

import json
import requests


class Baidu_translator():
    def __init__(self, troms_str):
        self.lang_detect_url = "https://fanyi.baidu.com/langdetect"
        self.troms_str = troms_str
        self.headers = {
            "User-agent ": "Mozilla/5.0 (iPad; CPU OS 11_0 like Mac OS X) AppleWebKit/604.1.34 (KHTML, like Gecko) Version/11.0 Mobile/15A5341f Safari/604.1"}
        self.trans_url = "https://fanyi.baidu.com/basetrans"

    def get_ret(self, dict_response):  # 提取翻译结果
        ret = dict_response["trans"][0]["dst"]
        return ret

    def parse_url(self, url, data):  # 发送post请求 获取响应
        response = requests.post(url, data=data, headers=self.headers)
        # 默认解码utf-8
        print(response.content.decode())
        return json.loads(response.content.decode())

    def run(self):  # 实现主要逻辑
        # 获取语言类型
        # 准备post的url地址post_data
        lang_detect_data = {"query": self.troms_str}
        # 发送post请求,获得响应   # 提取语言类型
        lang = self.parse_url(self.lang_detect_url, lang_detect_data)["lan"]

        # 准备post数据
        troms_data = {
            "query": self.troms_str,
            "from": "zh",
            "to": "en"
        } if lang == "zh" else {
            "query": self.troms_str,
            "from": "en",
            "to": "zh"
        }
        # 发送post请求 获取响应
        dict_response = self.parse_url(self.trans_url, troms_data)
        # 提取翻译的结果
        ret = self.get_ret(dict_response)
        print(ret)


if __name__ == '__main__':
    troms_str = input("输入要翻译的:")
    baidu_translator = Baidu_translator(troms_str)
    baidu_translator.run()



  • 写回答

1条回答 默认 最新

  • body221 2020-07-13 10:10
    关注

    直接使用response.json() 获取返回值的json,你这里先查看返回的是不是json格式,如果不是强行转换肯定会报错。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥200 csgo2的viewmatrix值是否还有别的获取方式
  • ¥15 Stable Diffusion,用Ebsynth utility在视频选帧图重绘,第一步报错,蒙版和帧图没法生成,怎么处理啊
  • ¥15 请把下列每一行代码完整地读懂并注释出来
  • ¥15 pycharm运行main文件,显示没有conda环境
  • ¥15 寻找公式识别开发,自动识别整页文档、图像公式的软件
  • ¥15 为什么eclipse不能再下载了?
  • ¥15 编辑cmake lists 明明写了project项目名,但是还是报错怎么回事
  • ¥15 关于#计算机视觉#的问题:求一份高质量桥梁多病害数据集
  • ¥15 特定网页无法访问,已排除网页问题
  • ¥50 如何将脑的图像投影到颅骨上