2016-08-12 10 views
-1

私は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', '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 

(汚いフォーマット)

{"@odata.context":"https://outlook.office365.com/api/v1.0/$metadata#Me/Events(Start,End)/$entity","@odata.id":"https://outlook.office365.com 
/api/v1.0/Users('[email protected]')/Events('AAMkADA1OWVjOTkxLTlmYmEtNDAwMS04YWU3LTNkNYDHE4YjU2OGI1ZABGBBBBBBD_fa49_h8OTJ5eGdjSTEF3BwBOcC 
SV9aNzSoXurwI4R0IgBBBBBBBENAABOcCSV9aNzSoXurwI4R0IgAAHn0Cy0AAA=')","@odata.etag":"W/\"TnAklfWjc0qF7q8COEdDTHDAB5+uOdw==\"","Id":"AAMkADA1OWVjO 
TkxLTlmYmEtNDAwMS04YWU3LTMHKNDE2YjU2OGI1ZABGAAAAAAD_fa49_h8OTJ5eGdjSTEF3BwBOcCSV9aNzSoXurwI4R0IgCCCCCCCENAABOcCSV9aNzSoXurwI4R0IgAAHn0Cy0AAA=" 
,"Start":"2016-08-13T15:00:00-07:00","End":"2016-08-13T16:00:00-07:00"} 

私は結果をロードする方法はあります@ odata.context、@ odata.id、@ odata.etag、Id、Start、Endの個々の値を取得します。

私はこれを試しましたが、運はありません。

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

'json.loads'を試しましたか? – ozgur

+0

私はhttps://outlook.office365.com/api/v1.0/me/events API – Milacay

+0

@PadraicCunninghamを使用しています。私は彼がJSONを読みやすくするためにJSFを再フォーマットしたと思います。 – Barmar

答えて

0

json読み込みを試しましたか。バックグラウンドでの負荷は、メソッド.read()を使用していますので、あなたがそれを使用したい場合は、StringIOをまたはこのようなファイル/オープン

のようなオブジェクトのようなファイルを使用する必要があります。

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']) 

編集: をコメントが既に質問に答えたかのようです...ごめんなさい

関連する問題