2016-07-14 16 views
-1

私はPythonを使用してJSONファイルからデータを収集しようとしています。私はテキストのいくつかのチャンクにアクセスすることができましたが、JSONファイルの3番目のオブジェクトに到達すると、キーエラーが発生します。最初の3行はうまくいきますが、最後の行は私に重要なエラーです。Python JSON辞書キーエラー

response = urllib.urlopen("http://asn.desire2learn.com/resources/D2740436.json") 
data = json.loads(response.read()) 

title = data["http://asn.desire2learn.com/resources/D2740436"]["http://purl.org/dc/elements/1.1/title"][0]["value"] 

description = data["http://asn.desire2learn.com/resources/D2740436"]["http://purl.org/dc/terms/description"][0]["value"] 

topics = data["http://asn.desire2learn.com/resources/D2740436"]["http://purl.org/gem/qualifiers/hasChild"] 

topicDesc = data["http://asn.desire2learn.com/resources/S2743916"] 

ここに私が使用しているJSONファイルがあります。 http://s3.amazonaws.com/asnstaticd2l/data/rdf/D2742493.json私は中括弧をすべて辿り、なぜこのエラーが出るのか理解できません。なぜ誰かが私がこれを得ているのか知っていますか?

+2

Um ...リンク先のファイルが、コードで参照しているファイルではありません。 –

答えて

0

このキー "http://asn.desire2learn.com/resources/D2740436"はソースファイルのどこにも表示されません。あなたのスタックが含まれていませんでしたが、私の最初の考えは悪いキーになるタイプミスされるだろうし、あなたのようなエラーを取得:あなたが参照しているデータには存在しない値を意味

KeyError: "http://asn.desire2learn.com/resources/D2740436" 

0

コード内のリンクとAWSリンクは、非常に異なるファイルに移動します。 Webブラウザでthe link in your codeを開くと、AWS上のファイルよりもはるかに短いことがわかります。それはあなたが探しているキーを実際には含んでいません。

+0

ああ私の神これはとても恋しい人だった。私がこれらのファイルを入手していたウェブサイトは完全に混乱していて、すべてのファイルが3つありました。私は問題を解決しました。ありがとうございました。 –

0

あなたは、"http://asn.desire2learn.com/resources/S2743916"というキーが1回表示されるリンクファイルを使用していると言います。

しかし、あなたのコードは別のファイルをダウンロードしています - 鍵は表示されません。

コードでリンクしたファイルを使用してみてください。そうすれば、キーが機能するはずです。