我正在尝试阅读JSON后,我与urllib2发送url请求。readingJSON with simplejson python
我的代码:
request = urllib2.Request("https://127.0.0.1:443/myAPI", data=form_data, headers=headers)
response = urllib2.open(request)
所以,问题是当我试图从响应对象读取JSON。 我做它这样
simplejson.loads(response.read())
我得到的错误是:当我送我的Firefox浏览器的请求
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)
的有趣的部分是,我打字地址127.0.0.1/myAPI在url线,我得到了屏幕上的json,我可以在调试模式下看到它作为JSON {“hosts”:[{“host”:“127.0.0.1: 4448“}]}
所以JSON是有效的..
在调试我得到这个页面:
<!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天来弄明白 感谢
尝试打印什么是响应,以检查它是否与浏览器通过执行print response.read()并在此处发布结果。也有可能返回的字符串有一些不可见的控制字符,您的浏览器不显示但使simplejson失败。 <!DOCTYPE HTML> – Antoine
<脚本类型= “文本/ JavaScript的” SRC = “JS/detectBrowser.js”> <元的charset = “utf-8”/> <链路的rel = “样式表的” href =“CSS/forensics.css“type =”text/css“media =”screen“/>
– yntnm