[英]readingJSON with simplejson python
我使用urllib2發送url請求后嘗試讀取JSON。
我的代碼:
request = urllib2.Request("https://127.0.0.1:443/myAPI", data=form_data, headers=headers)
response = urllib2.open(request)
所以問題是當我嘗試從響應對象讀取JSON時。 我正在那樣做
simplejson.loads(response.read())
我得到的錯誤是:
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)
有趣的部分是,當我在firefox瀏覽器中發送請求時,我在url行輸入地址127.0.0.1/myAPI ,我的確在屏幕上看到了json,並且可以在調試模式下將其作為JSON {“主機”:[{“主機”:“ 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>
有沒有人有某種方法來解決它,或者我怎么能直接從response對象讀取json文本,甚至在調試時查看它
感謝螞蟻的幫助,我嘗試至少3天來解決這個問題,謝謝。
我認為是因為這個simplejson.loads(response .read())
。 您在response和.read()之間有一個空格
請嘗試以下操作:
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)
所以這是我的壞事,而api需要一個庫克。 添加Cookie標頭后,我收到了正確的JSON
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.