TypeError:'int'对象不可迭代如何解析python dict

时间:2019-12-01 13:40:11

标签: python

mydict =  { 
'ServiceResult': { 
'msgBody': { 
  'itemList': [{ 
    'busRouteId': '100100016', 
    'busRouteNm': '110A', 
    }, { 
    'busRouteId': '100100015', 
    'busRouteNm': '110B', 
    }, { 
    'busRouteId': '165000146', 
    'busRouteNm': '1100', 
    }, { 
    'busRouteId': '165000147', 
    'busRouteNm': '1101', 
    }, { 
    'busRouteId': '218000011', 
    'busRouteNm': '1100', 
    }, { 
    'busRouteId': '222000074', 
    'busRouteNm': '1100', 
    }, { 
    'busRouteId': '235000085', 
    'busRouteNm': '1100', 
    }, { 
    'busRouteId': '234000879', 
    'busRouteNm': '1101', 
    }, { 
    'busRouteId': '204000082', 
    'busRouteNm': 'G8110', 
    }] 
 } 
} 
} 

我想打印所有itemList的'busRouteId' 所以我写了一个代码:

for i in len(mydict['ServiceResult']['msgBody']['itemList']): 
    print(mydict['ServiceResult']['msgBody'][i]['busRouteId']) 

但是它不起作用,只会看到此错误:

TypeError: 'int' object is not iterable.

如何解析python dict? 我该如何修改??

2 个答案:

答案 0 :(得分:0)

您需要将range()len()一起使用,并且还需要在循环内使用'itemList'

 for i in range(len(mydict['ServiceResult']['msgBody']['itemList'])):
    print(mydict['ServiceResult']['msgBody']['itemList'][i]['busRouteId'])

或者只是迭代'itemList'中的项目

 for item_list in mydict['ServiceResult']['msgBody']['itemList']:
    print(item_list['busRouteId'])

答案 1 :(得分:0)

您正在尝试迭代整数,因为len函数返回一个int值。您应该在外部使用范围:

mydict =  { 
'ServiceResult': { 
'msgBody': { 
  'itemList': [{ 
    'busRouteId': '100100016', 
    'busRouteNm': '110A', 
    }, { 
    'busRouteId': '100100015', 
    'busRouteNm': '110B', 
    }, { 
    'busRouteId': '165000146', 
    'busRouteNm': '1100', 
    }, { 
    'busRouteId': '165000147', 
    'busRouteNm': '1101', 
    }, { 
    'busRouteId': '218000011', 
    'busRouteNm': '1100', 
    }, { 
    'busRouteId': '222000074', 
    'busRouteNm': '1100', 
    }, { 
    'busRouteId': '235000085', 
    'busRouteNm': '1100', 
    }, { 
    'busRouteId': '234000879', 
    'busRouteNm': '1101', 
    }, { 
    'busRouteId': '204000082', 
    'busRouteNm': 'G8110', 
    }] 
 } 
} 
}
item_list = mydict['ServiceResult']['msgBody']['itemList']
for i in range(len(item_list)): 
    print(item_list[i]['busRouteId']) 
相关问题