最近爬取某网站时需要将响应的数据转为json格式,由于response对象有json()方法我就直接调用了:
html = requests.get(url, headers=headers, params=para)
html.content.decode('utf-8')
return html.json()['data']
然而运行后抛出了以下错误:
将html的文本及其类型输出后可以看到它的内容如下:
可以看到它里面是一个类似字典的字符串,外面套了一个test();
,把它去掉后再转为json程序就正常了:
con = html.text[5:-2]
return json.loads(con)['data']
这里涉及json格式转换的原理,我在网上没搜到比较好的讲解,大概在转换时程序会根据传入的字符串两端的字符判断结果的类型,如果有明白的大佬可以在评论区告诉我~