我试图打印使用jason.loads制作的这个python对象的LineRef。
{
"Siri": {
"ServiceDelivery": {
"ResponseTimestamp": "2014-08-09T12:07:08.519-04:00",
"VehicleMonitoringDelivery": [
{
"VehicleActivity": [
{
"MonitoredVehicleJourney": {
"LineRef": "MTA NYCT_B38",
}
}
]
}
]
}
}
}
到目前为止,我已经编写了这段代码:
theJSON = json.loads(data)
for j in theJSON["VehicleMonitoringDelivery"]:
for i in theJSON["VehicleActivity"]:
print [i]["MonitoredVehicleJourney"]["LineRef"]
但它在JSON上给出了错误
答案 0 :(得分:0)
您无法直接处理VehicleMonitoringDelivery
密钥,它嵌套在ServiceDelivery
词典中嵌套的Siri
中:
theJSON = json.loads(data)
for delivery in theJSON['Siri']['ServiceDelivery']['VehicleMonitoringDelivery']:
for activity in delivery['VehicleActivity']:
print activity['MonitoredVehicleJourney']['LineRef']
或使用索引获取第一个(如果列表为空,则可能失败:
theJSON = json.loads(data)
try:
delivery = theJSON['Siri']['ServiceDelivery']['VehicleMonitoringDelivery'][0]
activity = delivery['VehicleActivity'][0]
except IndexError:
print 'None-such'
else:
print activity['MonitoredVehicleJourney']['LineRef']
演示:
>>> theJSON = {
... "Siri": {
... "ServiceDelivery": {
... "ResponseTimestamp": "2014-08-09T12:07:08.519-04:00",
... "VehicleMonitoringDelivery": [
... {
... "VehicleActivity": [
... {
... "MonitoredVehicleJourney": {
... "LineRef": "MTA NYCT_B38",
... }
... }
... ]
... }
... ]
... }
... }
... }
>>> for delivery in theJSON['Siri']['ServiceDelivery']['VehicleMonitoringDelivery']:
... for activity in delivery['VehicleActivity']:
... print activity['MonitoredVehicleJourney']['LineRef']
...
MTA NYCT_B38