2017-02-26 6 views
1

私はFAAのAPIにJSONを使用しています。私の下のコードでは、 "airport_response"変数の中のgetデータを "airport_data"という辞書に出力しようとしています。次に、airport_data_keysというキーを印刷したいだけです。現在、シーケンス要素#0の長さは128ですが、2が必要です。どんな助けもありがとう。APIクエリ、JSON、Dictionary

import json 
import requests 
url_parameters = {} 
url_parameters["format"] = "json" 
base_url = 'http://services.faa.gov/airport/status/' 
airport = 'DTW' 
airport_response = requests.get(base_url + airport, params = url_parameters) 
airport_data = airport_response.json() 
airport_data = dict(airport_response) 
for k, v in airport_data.items(): 
    k = airport_data_keys 
    print airport_data_keys 

電流出力:

状態 都市 名 IATA ICAO 状態 遅延 天候

所望の出力:[u'status'、u'ICAO」、u'name '、u'city'、u'IATA '、u'delay'、u'state '、u'weather']

+0

'' airport_response'の代わりに '' airport_data''を 'dict(..)'と呼ぶべきですか?これで、応答文字列全体が単一の項目として表示され、辞書にはキー/値が必要になるため、エラーになります。 –

答えて

0

あなたのdict()は、 responseと一緒に使用しますが、jsonを使用しているため、dict(airport_response)を使用するとエラーが発生します。の代わりにairport_data = dict(airport_data)を使用してください。ここにあなたが望むものの例があります:

import json 
import requests 

url_parameters = { 
    "format": "json" 
} 

base_url = 'http://services.faa.gov/airport/status/' 
airport = 'DTW' 

airport_response = requests.get(base_url + airport, params=url_parameters) 
airport_data = airport_response.json() 
airport_data = dict(airport_data) 

airport_data_keys = [] 
for key, value in airport_data.items(): 
    airport_data_keys.append(key) 

print airport_data_keys 
+0

これはうまくいった!最後に、キーをUnicodeのリストで印刷したいのですが、どうすれば実行できますか?airport_data_keys( 'utf8')の印刷を試しましたが、TypeErrorエラーが返されました: 'Unicode'オブジェクトが呼び出し可能ではありません。 –

+0

少し助けてくれた@SammySmith yeh、私も自分のコードを更新しました。必要なのは、各キーをリストに追加することです。 –