2017-01-02 24 views
-1

国リストを作成しようとしています。私はrestcountries APIを使って国を取得しています。 JSONレスポンスを解析できません。以来、応答は特殊文字を含んでいます。だから、私はJSONEncoderを使用していたし、私のコードは以下の通りです:私はこのような結果a[0]必要PythonのJSONレスポンスのデータを解析できません

import requests 
import sys 
import ast 
import json 

url = 'https://restcountries.eu/rest/v1/name/united' 
r = requests.get(url) 
a = r.json() 

。私はこのprint(b)が正常に動作している

enter image description here

b = json.JSONEncoder().encode(a) 
print(b) 

以下のようにエラーを取得して、直接に印刷する場合。しかし、b[0]を取得できません。私はPythonの初心者です。私の貧しいコミュニケーションのために何かが間違って、申し訳ありません。

+0

をやっているのですか?なぜあなたは、デコードされたJSONを取得し、それを再エンコードしていますか?意味がない。 –

+0

@DanielRosemanデコードされたJSONがUnicodeEncodeErrorとしてエラーをスローします。 'charmap'コーデックは位置28に '\ xce'文字をエンコードできません。 4:文字はにマップされます。 もう一度再エンコードします – Nisar

+0

* *あなたにそのエラーがありますか?あなたがしたものと完全なトレースバックを正確に表示してください。 –

答えて

3

これは何をするのですか?

json.JSONEncoder().encode(a) 

Return a JSON string representation of a Python data structure

しかし、あなたはaに何がありますか? json。あなたは何をJSON配列

の一部であり、辞書の要素にアクセスしようとしているあなたが必要とするすべては、あなたはここで何を

r = requests.get(url) 
a = r.json() 
print(a[0]['name']) 
+0

しかしaを印刷することができません。 UnicodeEncodeError: 'charmap'コーデックは28の位置に '\ xce'文字をエンコードできません。4:文字はにマップされます。 – Nisar

+1

@nisarの問題は、あなたの端末やコンソールが理解できないようなネイティブ文字である可能性があります。 'print(a [0] ['name']。encode( 'some_encoding'))' 'some_encoding'は' utf- 8 'または他の - あなたのシステムでdepens。 – furas

+0

このコードはありません@furas私は試してみました – e4c5

関連する問題