我一直在尝试从一个大型JSON字典中提取元素,但是在python3中使用循环时,经过几次迭代后会出现“key error”。在
“label”工作正常,但当试图提取“value”时,会出现键错误。你觉得我做错什么了吗?在
我使用的JSON示例:
{
"@context" : "nullflood-monitoring/meta/context.jsonld" ,
"meta" : {
"publisher" : "Environment Agency" ,
"licence" : "http://www.nationalarchives.gov.uk/doc/open-government-
licence/version/3/" ,
"documentation" : "nullflood-monitoring/doc/reference" ,
"version" : "0.9" ,
"comment" : "Status: Beta service" ,
"hasFormat" : [ "nullflood-monitoring/id/measures.csv", "nullflood-
monitoring/id/measures.rdf", "nullflood-monitoring/id/measures.ttl",
"nullflood-monitoring/id/measures.html" ]
}
,
"items" : [ {
"@id" : "nullflood-monitoring/id/measuresures/1029TH-level-downstage-i-
15_min-mASD" ,
"datumType" : "nullflood-monitoring/def/core/datumASD" ,
"label" : "RIVER DIKLER AT Bournemouth ON ON THE WATER - level-downstage-i-
15_min-mASD" ,
"latestReading" : {
"@id" : "nullflood-monitoring/data/readings/1029TH-level-downstage-i-
15_min-mASD/2018-02-10T12-00-00Z" ,
"date" : "2018-02-10" ,
"dateTime" : "2018-02-10T12:00:00Z" ,
"measure" : "nullflood-monitoring/id/measures/1029TH-level-downstage-i-
15_min-mASD" ,
"value" : -0.283
}
,
"notation" : "1029TH-level-downstage-i-15_min-mASD" ,
"parameter" : "level" ,
"parameterName" : "Water Level" ,
"period" : 900 ,
"qualifier" : "Downstream Stage" ,
"station" : "nullflood-monitoring/id/stations/1029TH" ,
"stationReference" : "1029TH" ,
"unit" : "http://qudt.org/1.1/vocab/unit#Meter" ,
"unitName" : "mASD" ,
"valueType" : "instantaneous"
}
, {
"@id" : "nullflood-monitoring/id/measures/1029TH-level-stage-i-15_min-mASD"
,
"datumType" : "nullflood-monitoring/def/core/datumASD" ,
"label" : "RIVER DIKLER AT BOURTON ON THE WATER - level-stage-i-15_min-mASD"
,
"latestReading" : {
"@id" : "nullflood-monitoring/data/readings/1029TH-level-stage-i-15_min-
mASD/2018-02-10T12-00-00Z" ,
"date" : "2018-02-10" ,
"dateTime" : "2018-02-10T12:00:00Z" ,
"measure" : "nullflood-monitoring/id/measures/1029TH-level-stage-i-15_min-
mASD" ,
"value" : 0.245
}
到目前为止,我得到的Python代码:
^{pr2}$我在这里的第一篇文章,如果格式不正确,我深表歉意。在
你的JSON被破坏了,我直接从你在 one of your comments 用您的代码运行它会导致您提到的异常,然后我添加了一个异常处理代码,该代码只是继续在JSON上迭代:
这是程序的输出结果(它太大了,所以我把它放在pastebin上):
https://pastebin.com/tGfSnZv0
我不确定输出是否理想,但我希望它能在某种程度上帮助您解决您的问题,它显然比只有6个结果更具描述性。 我的猜测是英国政府更新的JSON是不一致的,或者有一些我不知道的语法。在
相关问题 更多 >
编程相关推荐