• json格式化response报警json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)


    遇到问题

    将requests请求相应结果json()化时,提示 "JSONDecodeError: Expecting value: line 1 column 1 (char 0)"

    import json
    import requests
           
    resp = requests.get(url).json()
        def raw_decode(self, s, idx=0):
            """Decode a JSON document from ``s`` (a ``str`` beginning with
            a JSON document) and return a 2-tuple of the Python
            representation and the index in ``s`` where the document ended.
        
            This can be used to decode a JSON document from a string that may
            have extraneous data at the end.
        
            """
            try:
                obj, end = self.scan_once(s, idx)
            except StopIteration as err:
    >           raise JSONDecodeError("Expecting value", s, err.value) from None
    E           json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
    
    ../../../../../.pyenv/versions/3.9.4/lib/python3.9/json/decoder.py:355: JSONDecodeError

    解决方案:

    这个报错的原因有很多,我的原因是域名或者uri写错了。导致请求响应了404, 这个响应消息体无法被json格式化,从而报错。更多原因可以参考:JSONDecodeError:期望值:第 1 行第 1 列(字符 0)

    排查过程

    直接执行上面的脚本,发现报出上述报警,可以看出是json格式出问题了,所以打算先去除json格式化这个步骤,先打印出response

    import json
    import requests
           
    resp = requests.get(url).json()

    去除json()

    import json
    import requests
           
    resp = requests.get(url)
    print("resp: %s" % resp) 

    运行结果如下

    resp: <Response [404]>

    发现响应了404, 说明可能是uri写错了, 排查uri之后,发现确实是写错了,改正uri之后,再次运行

    运行结果如下

    resp: <Response [200]>

    响应正常了,再加上json()格式化语句,不报上述提示 "JSONDecodeError: Expecting value: line 1 column 1 (char 0)"问题了。说明是响应404导致响应体不能被json格式化,从而报错。

  • 相关阅读:
    百度浏览器 h5页面fixed布局不显示问题
    Vue3_arco.design icon 组件批量渲染
    异步加载数据的 js tree (基于Jquery)
    ASP.NET MVC 与 WebForm 对比
    asp.net 页面生命周期
    ASP.NET通过OLE DB操作Excel
    SQL 分页查询的几种方式
    OLEDB读取Excel文件丢失部分数据
    MVC 基于FormsAuthentication 方式的权限验证
    Session不超时
  • 原文地址:https://www.cnblogs.com/hi3254014978/p/15162967.html
Copyright © 2020-2023  润新知