Python-捕获请求的单个值结果

Python-捕获请求的单个值结果,python,Python,我是Python新手。我试图捕获从请求结果返回的单个值 以下是我发送请求的部分代码: opener = urllib2.build_opener(urllib2.HTTPHandler) request = urllib2.Request(url, data=json_payload) auth = base64.encodestring('%s:%s' % (user, pwd)).replace('\n', '') request.add_header('Authorization', 'B

我是Python新手。我试图捕获从请求结果返回的单个值

以下是我发送请求的部分代码:

opener = urllib2.build_opener(urllib2.HTTPHandler)
request = urllib2.Request(url, data=json_payload)
auth = base64.encodestring('%s:%s' % (user, pwd)).replace('\n', '')
request.add_header('Authorization', 'Basic %s' % auth)
request.add_header('Content-Type', 'application/json')
request.add_header('Accept', 'application/json')
request.get_method = lambda: 'POST'
# Perform the request
result = opener.open(request).read()
print result
打印结果显示以下输出(格式混乱)

有没有一种方法可以将结果加载到json.load中并捕获@odata.context、@odata.id、@odata.etag、id、Start、End的单个值

我试过了,但是运气不好

data = json.load(result)   
print data["@odata.context"]

您是否尝试过使用json加载。后台加载使用方法.read(),因此如果要使用它,必须使用类似文件的对象,如StringIO或file/open

像这样:

import urllib2
import json
import base64
test_load = "foo=bar"
user = "test"
pwd = "test"

opener = urllib2.build_opener(urllib2.HTTPHandler)
request = urllib2.Request("http://scooterlabs.com/echo.json?%s" % test_load, data=b'data')
auth = base64.encodestring('%s:%s' % (user, pwd)).replace('\n', '')
request.add_header('Authorization', 'Basic %s' % auth)
request.add_header('Content-Type', 'application/json')
request.add_header('Accept', 'application/json')
request.get_method = lambda: 'POST'
result = opener.open(request).read()
jsons = json.loads(result)

print("FULL: %s" % result)
print(jsons[u'method'])
print(jsons[u'request'])
编辑:
似乎这些评论已经回答了这个问题。。。抱歉

您是否尝试了
json.loads
?我正在使用API@PadraicCunningham我认为他重新格式化了JSON以使问题更容易阅读,因此他将字符串跨行拆分。jsonlint.com是使JSON可读的更好方法。@Milacay只需使用
JSON.loads
而不是
JSON.loads
import urllib2
import json
import base64
test_load = "foo=bar"
user = "test"
pwd = "test"

opener = urllib2.build_opener(urllib2.HTTPHandler)
request = urllib2.Request("http://scooterlabs.com/echo.json?%s" % test_load, data=b'data')
auth = base64.encodestring('%s:%s' % (user, pwd)).replace('\n', '')
request.add_header('Authorization', 'Basic %s' % auth)
request.add_header('Content-Type', 'application/json')
request.add_header('Accept', 'application/json')
request.get_method = lambda: 'POST'
result = opener.open(request).read()
jsons = json.loads(result)

print("FULL: %s" % result)
print(jsons[u'method'])
print(jsons[u'request'])