ZTT......
2021-09-12 14:59
采纳率: 60%
浏览 38
已结题

列表与字典多层嵌套取值


dict = [{'school_attr': {'2019': {'1': [{'batch': '本科二批', 'score': 401, 'zslx': '普通类', 'lqpc': '本科二批', 'type_name': '理科', 'school_id': '2421'}], '2': [{'batch': '本科二批', 'score': 477, 'zslx': '普通类', 'lqpc': '本科二批', 'type_name': '文科', 'school_id': '2421'}]}, '2020': {'2': [{'batch': '本科批', 'score': 480, 'zslx': '普通类', 'lqpc': '本科批', 'type_name': '文科', 'school_id': '2421'}], '1': [{'batch': '本科批', 'score': 422, 'zslx': '普通类', 'lqpc': '本科批', 'type_name': '理科', 'school_id': '2421'}]}}

我想要获取的结果是:
2019:1;本科二批;401;普通类;本科二批;理科;2421
2;本科二批;477;普通类;本科二批;文科;2421
2020的结果同上

意思就是要打印出每一条数据中的每个元素
先感谢各位的回答呀!

  • 收藏

1条回答 默认 最新

  • Feng-licong 2021-09-12 16:20
    已采纳
    dict = [{'school_attr': {'2019': {'1': 
        [{'batch': '本科二批', 'score': 401, 'zslx': '普通类', 'lqpc': '本科二批', 
          'type_name': '理科', 'school_id': '2421'}], 
        '2': [{'batch': '本科二批', 'score': 477, 'zslx': '普通类', 'lqpc': '本科二批', 
               'type_name': '文科', 'school_id': '2421'}]}, 
        '2020': {'2': [{'batch': '本科批', 'score': 480, 'zslx': '普通类', 'lqpc': '本科批', 
                        'type_name': '文科', 'school_id': '2421'}], 
        '1': [{'batch': '本科批', 'score': 422, 'zslx': '普通类', 'lqpc': '本科批', 'type_name': '理科', 
               'school_id': '2421'}]}}}]
    
    
    dict_k = list(dict[0]['school_attr'].keys())
    dict_v = list(dict[0]['school_attr'].values())
    
    for i in range(len(dict_k)):
        dict_v_k = list(dict_v[i].keys())    
        dict_v_v = list(dict_v[i].values())
        print(dict_k[i]+ ":",end='')
        for j in range(len(dict_v_k)):
            print(str(dict_v_k[j]) + ";" + ";".join(map(str,list(dict_v_v[j][0].values()))))
        print()
    

    img

    1 打赏 评论

相关推荐 更多相似问题