2016-07-15 2 views
0

私のAPIから返されたjsonオブジェクトを取得しようとしています。 Pythonのリクエストフレームワークを使用して、apiからjsonオブジェクトを取得します。コンテンツタイプは、実行時にapplication/jsonを返し、コンテンツがjsonになるようにします。アプリケーション/ jsonオブジェクトを受け取るためにGETを実行するためのリクエストを使用するPython

url = 'theUrl' 
response = requests.get(url) 
print(response.headers['content-type']) 
data = json.load(response) 

スクリプトのリターンを実行しました:いいえJSONオブジェクトをデコードすることができます

はとValueError( "いいえJSONオブジェクトをデコードすることはできなかった") ValueErrorを送出し。

apiがエラーをスローする要求を実行する際に別の問題もあります。私はこれまで、様々な異なるアプローチを試してみたが、受け取ることができないようMessageBodyWriterメディアタイプ= {text/htmlの}が見つかりません

:APIのエラーログは

message.internal.WriterInterceptorExecutorのエラーを生成しますjsonオブジェクト誰もが同様の問題に遭遇する?

+1

をやっている:レスポンスボディは、このように、.textのプロパティにありますか? – ritlew

答えて

0

最後の2行は意味をなさない。 response.json()に電話し、戻り値を無視して、実際の応答内容ではなく、応答自体にjson.loads()を呼び出してみます。

これらの2行の代わりに、デシリアライズされたデータを既に返すdata = response.json()を実行してください。

+0

申し訳ありませんが、私が質問を書いていたときに、最初の呼び出しはタイプミスでした。私は追加しました data = json.loads(response.json) 新しいエラーが発生しましたが、より役立ちます。これはかなり新しいです。今APIからこのエラーを受け取ったみんなありがとう – Zoidburg

0

requests.getからの戻り値は文字列ではなくオブジェクトです。

data = json.loads(response.text) 

そして、あなたは、あなたが ``データ=のjson.loads(response.json)を持っているわけでください

+0

:私は自分自身にあなたの入力と歓声@Danielローズマンのための感謝を休ま理解できると信じていても MessageBodyWriterは、メディアタイプ=アプリケーション/ xmlのが見つかりません、 君たちはたくさん助けました – Zoidburg

関連する問題