无法在 python 中解析来自 sg.media-imdb 的响应
Can not parse response from sg.media-imdb in python
我正在尝试在 Python 3.6.8.
中解析来自 https://sg.media-imdb.com/suggests/a/a.json 的响应
这是我的代码:
import requests
url = 'https://sg.media-imdb.com/suggests/a/a.json'
data = requests.get(url).json()
我收到这个错误:
$ /usr/bin/python3 /home/livw/Python/test_scrapy/phase_1.py
Traceback (most recent call last):
File "/home/livw/Python/test_scrapy/phase_1.py", line 33, in <module>
data = requests.get(url).json()
File "/home/livw/.local/lib/python3.6/site-packages/requests/models.py", line 889, in json
self.content.decode(encoding), **kwargs
File "/usr/lib/python3/dist-packages/simplejson/__init__.py", line 518, in loads
return _default_decoder.decode(s)
File "/usr/lib/python3/dist-packages/simplejson/decoder.py", line 370, in decode
obj, end = self.raw_decode(s)
File "/usr/lib/python3/dist-packages/simplejson/decoder.py", line 400, in raw_decode
return self.scan_once(s, idx=_w(s, idx).end())
simplejson.errors.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
似乎响应格式不是JSON格式,虽然我可以在JSON Formatter & Validator
解析响应
如何修复它并将响应存储在 json 对象中?
这可能是因为它不是完整的 json,它有一个前缀
可以看到响应以imdb$a(
开始,以)
结束
json解析不知道怎么处理他失败了,你可以去掉那些值,只解析json本身
你可以这样做:
import json
import requests
url = 'https://sg.media-imdb.com/suggests/a/a.json'
data = requests.get(url).text
json.loads(data[data.index('{'):-1])
我正在尝试在 Python 3.6.8.
中解析来自 https://sg.media-imdb.com/suggests/a/a.json 的响应这是我的代码:
import requests
url = 'https://sg.media-imdb.com/suggests/a/a.json'
data = requests.get(url).json()
我收到这个错误:
$ /usr/bin/python3 /home/livw/Python/test_scrapy/phase_1.py
Traceback (most recent call last):
File "/home/livw/Python/test_scrapy/phase_1.py", line 33, in <module>
data = requests.get(url).json()
File "/home/livw/.local/lib/python3.6/site-packages/requests/models.py", line 889, in json
self.content.decode(encoding), **kwargs
File "/usr/lib/python3/dist-packages/simplejson/__init__.py", line 518, in loads
return _default_decoder.decode(s)
File "/usr/lib/python3/dist-packages/simplejson/decoder.py", line 370, in decode
obj, end = self.raw_decode(s)
File "/usr/lib/python3/dist-packages/simplejson/decoder.py", line 400, in raw_decode
return self.scan_once(s, idx=_w(s, idx).end())
simplejson.errors.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
似乎响应格式不是JSON格式,虽然我可以在JSON Formatter & Validator
解析响应如何修复它并将响应存储在 json 对象中?
这可能是因为它不是完整的 json,它有一个前缀
可以看到响应以imdb$a(
开始,以)
结束
json解析不知道怎么处理他失败了,你可以去掉那些值,只解析json本身
你可以这样做:
import json
import requests
url = 'https://sg.media-imdb.com/suggests/a/a.json'
data = requests.get(url).text
json.loads(data[data.index('{'):-1])