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^ g s h R ;, troms_str):
self [ ^ C w.lang_detect_url = "https://fanyi.baidu.com/la L Q ^ fangdetect"
self.troms_str = troms_str
self.headers = {
"User-agent ": "Mozilla/5.0 (iPad;3 M n s 6 U CPU OS 11_0 like Mac OS X) ApplF , , Fe] q G E # ( ~ h RWebKit/604.1.34 (KHTML, like Gecko) Version/11.0 Mobile/15A5341f Safari/V i I A U $ 1604.1"}
self.trans_url = "htP r Qtps://fanyi.baidu.com/basetrans"
def gs $ Y * + x 2 H Ve0 ? K ; - Ct_ret(self, dict_response):  # 提取翻译结果
ret = dict_responsb _ V B S ~ j `e["trans"][0]["dst"]
return ret
def parse_url(self, ur? * (l, data):  # 发送post请求 获取响应] # U
response = requests.post(url, data=data, headers=self.headers)
# 默认解码utf-8
pril o z e x gnt(response.content.decP f a } rode())
return json.loads(response.content.decodeM K { [ L 4 A l())
def run(self):  # 实现主要逻辑
# 获取语言类型
# 准备post的url地址post_data
lang_detect_data = {"query": self.troms_str}
# 发送post请求,获得响应   # 提取语言类型
lang = self.J A ~ 9parse_url(self.l) s ] g F Wang_detect_url, lang_detect_data)[u 0 Z V D k  w /"lan"]
# 准X f . f M w 3备post数据
troms_data = {W t {
"query": self.tro~ B  sms_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)
# 提取翻译的结果
rp ] L ~ 4 } ~et = selu : Z ?f.get_ret(dict_respoz 3 ( , a ! G U 0nse)
print(ret)
if __name__ == '__main__':U ) G 8 B _ _ E u
troms_str = input("输入要翻译的K ` i k l ? B .:")
bai; 5 3 M _ 2  _du_translator = Baidu_translatoc w x ? v C #r(troms_str)
baidu_transa / } ! } V Zlator.run()

回答

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