[英]Iterate through a python list
我的vehicle['estimatedCalls']['estimatedCall']
列表包含以下项目:
[
{
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
您能帮我解决这个问题,找到合适的代码来执行吗? 谢谢你的帮助!
为简单起见,根据提供的信息,这里有一个示例
value=[{u'originDisplay': [], u'destinationDisplay': [],
u'stopPointRef': {u'value': u'STIF:StopPoint:Q:24684:'},
u'expectedDepartureTime': u'2017-03-17T19:00:00.000Z',
u'stopPointName': [], u'arrivalOperatorRefs': []},
{u'originDisplay': [], u'destinationDisplay': [],
u'stopPointRef': {u'value': u'STIF:StopPoint:Q:24683:'},
u'expectedDepartureTime': u'2017-03-17T19:00:00.000Z',
u'stopPointName': [], u'arrivalOperatorRefs': []},
{u'originDisplay': [], u'destinationDisplay': [],
u'stopPointRef': {u'value': u'STIF:StopPoint:Q:24680:'},
u'expectedDepartureTime': u'2017-03-17T19:00:00.000Z',
u'stopPointName': [], u'arrivalOperatorRefs': []},
{u'originDisplay': [], u'destinationDisplay': [],
u'stopPointRef': {u'value': u'STIF:StopPoint:Q:24687:'},
u'expectedDepartureTime': u'2017-03-17T19:00:00.000Z',
u'stopPointName': [], u'arrivalOperatorRefs': []},
{u'originDisplay': [], u'destinationDisplay': [],
u'stopPointRef': {u'value': u'STIF:StopPoint:Q:24686:'},
u'expectedDepartureTime': u'2017-03-17T19:00:00.000Z',
u'stopPointName': [], u'arrivalOperatorRefs': []},
{u'originDisplay': [], u'destinationDisplay': [],
u'stopPointRef': {u'value': u'STIF:StopPoint:Q:24685:'},
u'expectedDepartureTime': u'2017-03-17T19:00:00.000Z',
u'stopPointName': [], u'arrivalOperatorRefs': []}]
#I am attempting to build the vehicle dict like the one you have
vehicle={}
vehicle["estimatedCalls"]={"estimatedCall":value}
for call in vehicle['estimatedCalls']['estimatedCall']:
print("\n\n")
#stoptime = ent.trip_update.stop_time_update.add()
expected_arrival_time= call['expectedArrivalTime'] if 'expectedArrivalTime' in call else None
expected_departure_time=call["expectedDepartureTime"]
aimed_departuretime=call['aimedDepartureTime'] if 'aimedDepartureTime' in call else None
aimed_arrivaltime=call['aimedArrivalTime'] if 'aimedArrivalTime' in call else None
print("stop id is",call['stopPointRef']['value'])
print("expected Arrival time is",expected_arrival_time)
print("expected departure time is",expected_departure_time)
print("aimed departure time is",aimed_departuretime)
print("aimed arrival time time is",aimed_arrivaltime)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.