2017-08-25 15 views
-1

私は正常にjson.load(応答)リクエストを満たしており、結果をナビゲート/表示でき、私が期待しているようです。しかし、属性にアクセスしようとするとKeyErrorが発生します。この例では、ローカル変数を "SHORT_NAME"属性に設定する必要があります。python 2.7 urllib2.Request KeyError

{u'fieldAliases ':{u'SHORT_NAME':u'SHORT_NAME」、u'OBJECTID ': u'OBJECTID'}、u'fields ':[{u'alias':u'OBJECTID '、' u'type ':u'type':u'type ': u'length':50、u'type ':u' [u'attributes:{u'SHORT_NAME ':u'SHORT_NAME':] '、' u'SHORT_NAME ':u'DisplayFieldName':u'LONG_NAME '、u'features': 上記にアクセスするための17}}]}

マイPythonコード:木星インレット ' u'OBJECTID'

reqAp = urllib2.Request(queryURLAp, paramsAp) 
responseAp = urllib2.urlopen(reqAp) 
jsonResultAp = json.load(responseAp) #all good here! above example is what this contains 

#trying to set variable to the SHORT_NAME attribute 
for featureAp in jsonResultAp['features']: 
    aqp = feature['attributes']['SHORT_NAME'] 
    #this fails with: "KeyError: 'SHORT_NAME'" 

それは私が私が間違ってやっているかなりよく分からないので「SHORT_NAME」があることは明らかです。

フィードバックありがとうございます。

+0

どのように質問を否決しますか? geesh。 – user2309282

+1

for行では、変数featureApに名前を付けますが、ループ内でフィーチャー変数を使用しています。私はそれが誤植だと思いますか? – lancew

+0

ビンゴ!それをキャッチしていただきありがとうございます。シンプル! – user2309282

答えて

1

変更:

aqp = feature['attributes']['SHORT_NAME'] 

へ:

aqp = featureAp['attributes']['SHORT_NAME'] 
+0

そこに行きます。上記のコメントで正しく答えました。これをポストアンサーとしてマークすることができます。あなたの鋭い目に感謝します! – user2309282