Python JSON字典键错误

时间:2016-07-14 18:58:14

标签: python json dictionary

我正在尝试使用python从JSON文件中收集数据。我能够访问几个文本块但是当我到达JSON文件中的第3个对象时,我收到了一个关键错误。前三行工作正常,但最后一行给了我一个关键错误。

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我经历了所有的大括号,无法弄清楚为什么我会收到这个错误。任何人都知道我为什么会这样做?

3 个答案:

答案 0 :(得分:0)

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

我没有看到这个键" http://asn.desire2learn.com/resources/D2740436"源文件中的任何位置。你没有包含你的堆栈,但我的第一个想法是错字导致一个坏键,你得到一个错误,如:

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

这意味着您引用的数据中不存在该值

答案 1 :(得分:0)

您的代码和AWS链接中的链接会转到非常不同的文件。在Web浏览器中打开the link in your code,您会发现它比AWS上的文件短得多。它实际上并不包含您正在寻找的密钥。

答案 2 :(得分:0)

您说您正在使用链接文件,其中密钥count出现一次。

但是,您的代码正在下载另一个文件 - 一个不显示密钥的文件。

尝试使用您在代码中链接的文件,您应该会看到密钥可以正常工作。