专心走 发表于 2021-8-14 15:59:22

求助,json.decoder.JSONDecodeError这个bug怎么解决呀

代码如下:
import requests
import json
import demjson

class King(object):
    def __init__(self, word):
      self.url = 'https://fanyi.baidu.com/?aldtype=16047#auto/zh'
      self.headers= {
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3870.400 QQBrowser/10.8.4405.400'}
      self.data= {
      'from': 'zh',
      'to': 'en',
      'query': '字典',
      'transtype': 'realtime',
      'simple_means_flag': '3',
      'sign': '763934.1002287',
      'token': 'c6fe0fc23649fe5d53430ee83315cf82',
      'domain': 'common'
         }
    def get_data(self):         # 发送请求获得响应
      response = requests.post(self.url, data=self.data, headers=self.headers)
      return response.content

    def parse_data(self, data):          #解析数据,loads方法将json字符串转化为python字典
      dict_data = json.loads(data)
      print(dict_data['data']['dst'])

    def run(self):          # 编写爬虫逻辑
       # 定义一个url
       # 伪装headers
       # date 字典
       # 发送post请求
      response = self.get_data()
       # 数据解析
      self.parse_data(response)

if __name__ =='__main__':
    king = King('字典')
    king.run()

运行之后,出现json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)这样的错误

专心走 发表于 2021-8-14 16:13:47

{:10_269:}

wp231957 发表于 2021-8-15 08:03:00

专心走 发表于 2021-8-14 16:13


def parse_data(self, data):          #解析数据,loads方法将json字符串转化为python字典
      dict_data = json.loads(data)
      print(dict_data['data']['dst'])
你先print一下这个data看一下它是否是json格式

nahongyan1997 发表于 2021-8-16 09:14:40

我帮你把代码改好了偶,要给我最佳偶
import requests
import json

class King(object):
    def __init__(self, word):
      self.url = 'https://fanyi.baidu.com/sug'
      self.headers= {
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3870.400 QQBrowser/10.8.4405.400'}
      self.data= {
            "kw":word
         }
    def get_data(self):         # 发送请求获得响应
      response = requests.post(self.url, data=self.data, headers=self.headers)
      return response.text

    def parse_data(self, data):          #解析数据,loads方法将json字符串转化为python字典
      dict_data = json.loads(data)
      print(dict_data['data']['v'])

    def run(self):          # 编写爬虫逻辑
       # 定义一个url
       # 伪装headers
       # date 字典
       # 发送post请求
      response = self.get_data()
       # 数据解析
      self.parse_data(response)

if __name__ =='__main__':
    king = King('你好')
    king.run()


需要注意的是百度翻译的网址和翻译请求的接口可不是一个 url
页: [1]
查看完整版本: 求助,json.decoder.JSONDecodeError这个bug怎么解决呀