0
我有一个vehicle['estimatedCalls']['estimatedCall']
列表包含以下项目:迭代通过Python列表
[
{
u"originDisplay": [],
u"destinationDisplay": [],
u"stopPointRef": {
u"value": "STIF:StopPoint:Q:24684:"
},
u"expectedDepartureTime": "2017-03-17T19:00:00.000Z",
u"stopPointName": [],
u"arrivalOperatorRefs": []
},
{
u"originDisplay": [],
u"destinationDisplay": [],
u"stopPointRef": {
u"value": "STIF:StopPoint:Q:24683:"
},
u"expectedDepartureTime": "2017-03-17T19:00:00.000Z",
u"stopPointName": [],
u"arrivalOperatorRefs": []
},
{
u"originDisplay": [],
u"destinationDisplay": [],
u"stopPointRef": {
u"value": "STIF:StopPoint:Q:24680:"
},
u"expectedDepartureTime": "2017-03-17T19:00:00.000Z",
u"stopPointName": [],
u"arrivalOperatorRefs": []
},
{
u"originDisplay": [],
u"destinationDisplay": [],
u"stopPointRef": {
u"value": "STIF:StopPoint:Q:24687:"
},
u"expectedDepartureTime": "2017-03-17T19:00:00.000Z",
u"stopPointName": [],
u"arrivalOperatorRefs": []
},
{
u"originDisplay": [],
u"destinationDisplay": [],
u"stopPointRef": {
u"value": "STIF:StopPoint:Q:24686:"
},
u"expectedDepartureTime": "2017-03-17T19:00:00.000Z",
u"stopPointName": [],
u"arrivalOperatorRefs": []
},
{
u"originDisplay": [],
u"destinationDisplay": [],
u"stopPointRef": {
u"value": "STIF:StopPoint:Q:24685:"
},
u"expectedDepartureTime": "2017-03-17T19:00:00.000Z",
u"stopPointName": [],
u"arrivalOperatorRefs": []
}
]
我想通过每个stopPointRef
迭代,expectedDepartureTime
夫妇(和不在座的,有时expectedArrivalTime
,aimedDepartureTime
和aimedArrivalTime
存在时),以检索它们的值(为stopPointRef
,价值不value
但第二项(与STIF:StopPoint:Q:
开始)
这里是我当前的代码:
for call in vehicle['estimatedCalls']['estimatedCall']:
stoptime = ent.trip_update.stop_time_update.add()
for j in len(vehicle['estimatedCalls']['estimatedCall']['stopPointRef']):
stoptime.stop_id = vehicle['estimatedCalls']['estimatedCall']['stopPointRef']['value']
stoptime.arrival_time = call['expectedArrivalTime']
stoptime.departure_time = call['expectedDepartureTime']
的 “for” 循环似乎正常工作(print vehicle['estimatedCalls']['estimatedCall']
返回正确的列表)
但是当试图通过每个stopPointRef
,expectedDepartureTime
组进行迭代,用:
for j in len(vehicle['estimatedCalls']['estimatedCall']['stopPointRef']):
我出现以下错误:TypeError: list indices must be integers, not str
您能否帮我解决这个问题并找到适当的代码来执行该操作?谢谢你的帮助!
'len'返回一个整数,所以你写的东西归结为类似'在10' j,它并没有真正任何意义。有时候,一个人使用'范围内的j(len(...))',但这看起来并不是你想要的。 – fuglede
this“vehicle ['estimatedCalls'] ['estimatedCall']”是一个不是字典的列表..您必须将它称为vehicle ['estimatedCalls'] ['estimatedCall'] [0] ['stopPointRef'] – repzero