【问题标题】:Can not parse response from sg.media-imdb in python无法在 python 中解析来自 sg.media-imdb 的响应
【发布时间】:2019-10-14 19:23:27
【问题描述】:

我正在尝试在 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 对象中?

【问题讨论】:

    标签: python json api python-requests imdb


    【解决方案1】:

    这可能是因为它不是一个完整的 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])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-25
      • 1970-01-01
      • 1970-01-01
      • 2017-04-02
      • 2017-06-16
      相关资源
      最近更新 更多