首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有simplejson python的readingJSON

带有simplejson python的readingJSON
EN

Stack Overflow用户
提问于 2016-11-24 13:14:59
回答 2查看 79关注 0票数 0

在用urllib2发送url请求之后,我正在尝试读取JSON。

我的代码:

代码语言:javascript
复制
request = urllib2.Request("https://127.0.0.1:443/myAPI", data=form_data, headers=headers)
response = urllib2.open(request) 

因此,问题是当我试图从响应对象读取JSON时。我就是那样做的

代码语言:javascript
复制
 simplejson.loads(response.read())

我得到的错误是:

代码语言:javascript
复制
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/opt/new/main3/python/simplejson/__init__.py", line 385, in loads
    return _default_decoder.decode(s)
  File "/opt/new/main3/python/simplejson/decoder.py", line 402, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/opt/new/main3/python/simplejson/decoder.py", line 420, in raw_decode
    raise JSONDecodeError("No JSON object could be decoded", s, idx)
simplejson.decoder.JSONDecodeError: No JSON object could be decoded: line 1 column 0 (char 0)

有趣的部分是当我在火狐浏览器中发送请求时,我在url行输入地址127.0.0.1/myAPI,我在屏幕上看到json,我可以在调试模式下看到它是一个JSON {“主机”:{“主机”:"127.0.0.1:4448"}}

所以json是有效的。

在调试时,我得到了以下页面:

代码语言:javascript
复制
    <!DOCTYPE html>
<html>
<head>
    <!-- framebusting -->
    <style>
        html{display : none ;}
    </style>
    <script type="text/javascript">
        if (self == top) {
            document.documentElement.style.display = "block";
        } else {
            top.location = self.location;
        }
    </script>
    <script type="text/javascript" src="js/detectBrowser.js"></script>
    <meta charset="utf-8"/>
    <link rel="StyleSheet" href="css/forensics.css" type="text/css" media="screen"/>
</head>
<body>
    <script type="text/javascript" src="libs/requirejs/require.js" data-main="js/login.js"></script>
</body>
</html>

是否有人有办法解决这个问题,或者如何从响应对象中直接读取json文本,或者甚至在调试时查看它?

我很感激蚂蚁的帮助,我至少花了3天的时间来解决这个问题--谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-11-29 10:21:08

所以这是我的错,api是需要一个小吃的。添加cookie头后,我收到了正确的JSON

票数 0
EN

Stack Overflow用户

发布于 2016-11-24 14:32:05

我想是因为这个simplejson.loads(response .read())。在响应和.read()之间有一个空格

尝试以下几点:

代码语言:javascript
复制
request = urllib2.Request("https://127.0.0.1:443/myAPI", data=form_data, headers=headers)
response = urllib2.open(request) 
response_body = response.read()
response_body_json = simplejson.loads(response_body)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40787393

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档