我想知道在尝试在python中打印以下代码名称的数据时出现了什么错误。
import urllib.request, json
with urllib.request.urlopen("<THIS IS A URL IN THE ORIGINAL SCRIPT>") as url:
data = json.loads(url.read().decode())
print (data['Departure']['Product']['name'])
print (data['Departure']['Stops']['Stop'][0]['depTime'])
这是我要从中获取数据的api:
{
"Departure" : [ {
"Product" : {
"name" : "Länstrafik - Buss 201",
"num" : "201",
"catCode" : "7",
"catOutS" : "BLT",
"catOutL" : "Länstrafik - Buss",
"operatorCode" : "254",
"operator" : "JLT",
"operatorUrl" : "http://www.jlt.se"
},
"Stops" : {
"Stop" : [ {
"name" : "Gislaved Lundåkerskolan",
"id" : "740040260",
"extId" : "740040260",
"routeIdx" : 12,
"lon" : 13.530096,
"lat" : 57.298178,
"depTime" : "20:55:00",
"depDate" : "2019-03-05"
}
答案 0 :(得分:0)
data["Departure"]
是一个列表,您像在字典中一样对其进行索引。
答案 1 :(得分:0)
您将字典示例写得令人困惑。这是我的外观:
d = {
"Departure" : [ {
"Product" : {
"name" : "Länstrafik - Buss 201",
"num" : "201",
"catCode" : "7",
"catOutS" : "BLT",
"catOutL" : "Länstrafik - Buss",
"operatorCode" : "254",
"operator" : "JLT",
"operatorUrl" : "http://www.jlt.se"
},
"Stops" : {
"Stop" : [ {
"name" : "Gislaved Lundåkerskolan",
"id" : "740040260",
"extId" : "740040260",
"routeIdx" : 12,
"lon" : 13.530096,
"lat" : 57.298178,
"depTime" : "20:55:00",
"depDate" : "2019-03-05"
}]}}]}
这是打印depTime
print(d["Departure"][0]["Stops"]["Stop"][0]["depTime"])
您错过的重要部分是d["Departure"][0]
,因为d["Departure"]
是list
。
答案 2 :(得分:0)
正如凯尔(Kyle)在上一个回答中所说,{'cat': 'meow', 'dog': 'hairy', 'rabbit': 'carrot'}
是一个列表,但是您试图将其用作字典。有两种可能的解决方案。
将data["Departure"]
等更改为data["Departure"]["Stops"]["Stop"]
等。
更改JSON文件以使其脱离字典,这将使您可以保留原始代码。这将使最终的JSON代码片段看起来像这样:
data["Departure"][0]["Stops"]["Stop"]