EkkO0o 2023-09-01 17:01 采纳率: 0%
浏览 115

音乐软件爬虫报错keyerror:data

代码运行UI界面可以正常显示,输入信息后报错:

songs_data = self.response_data['data']['list']
                 ~~~~~~~~~~~~~~~~~~^^^^^^^^
KeyError: 'data'

部分源码如下:
if len(search_input) >0:
            search_url = 'http://www.kuwo.cn/api/www/search/searchMusicBykeyWord?'
            """key携带的值,是我们要搜索的值;pn,按照常量,我们猜测,其为页数;rn,我们猜测其为一页显示的数量"""
            search_data = {
                'key':search_input,
                'pn':'1',
                'rn': '80',
                'httpsStatus':'1',
                'reqId':'858597c1-b18e-11ec-83e4-9d53d2ff08ff'
            }
            try:# params 接收一个字典或者字符串的查询参数,字典类型自动转换为url编码,不需要urlencode()
                self.response_data = requests.get(search_url,params=search_data,headers=headers,
                                                  timeout=20).json()
             songs_data = self.response_data['data']['list']
                if int(self.response_data['data']['total'])<=0:
                    mes_box.showerror(title='错误',message='搜索:{} 不存在.'.format(search_input))
                else:
                    for i in range(len(songs_data)):
                        self.show_result.insert('',i,values=(i+1,songs_data[i]['artist'],
                                                             songs_data[i]['name'],
                                                             songs_data[i]['album']))
  • 写回答

3条回答 默认 最新

  • Marst·Zhang 2023-09-01 17:07
    关注

    这说明查询返回的数据结构变了。重新确认一下返回的内容。

    评论

报告相同问题?

问题事件

  • 创建了问题 9月1日