[英]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.