栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

将JSON对象排序到层次结构中

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

将JSON对象排序到层次结构中

myJson = [    {      "name":"Folder 2",      "id":"zRDg",      "parent":"OY00",      "type":"folder"    },    {      "name":"Folder 1",      "id":"OY00",      "type":"folder"    },    {      "name":"Folder 3",      "id":"ZDE1",      "type":"folder"    },    {      "name":"DX00025.jpg",      "id":"9Xdd",      "parent":"OY00",      "type":"jpeg"    }]#this creates a dictionary that maps id names to JSON items.#ex. itemsKeyedById["9Xdd"] gives the jpg item with id "9Xdd"itemsKeyedById = {i["id"]: i for i in myJson}#iterate through each item in the `myJson` list.for item in myJson:    #does the item have a parent?    if "parent" in item:        #get the parent item        parent = itemsKeyedById[item["parent"]]        #if the parent item doesn't have a "children" member,         #we must create one.        if "children" not in parent: parent["children"] = []        #add the item to its parent's "children" list.        parent["children"].append(item)#filter out any item that has a parent.#They don't need to appear at the top level, #since they will appear underneath another item elsewhere.topLevelItems = [item for item in myJson if "parent" not in item]print topLevelItems

输出(我添加了缩进):

[    {        'name': 'Folder 1',         'id': 'OY00',        'type': 'folder',        'children': [ {     'name': 'Folder 2',      'id': 'zRDg',     'parent': 'OY00',      'type': 'folder' },  {     'name': 'DX00025.jpg',      'id': '9Xdd',     'parent': 'OY00',      'type': 'jpeg'  }        ]    },     {        'name': 'Folder 3',         'id': 'ZDE1',        'type': 'folder'    } ]

它也适用于嵌套多个深度的项目。输入示例:

myJson = [    {        "name":"TopLevel folder",        "id":"0",        "type":"folder",    },    {        "name":"MidLevel folder",        "id":"1",        "type":"folder",        "parent":"0"    },    {        "name":"Bottom Level folder",        "id":"2",        "type":"folder",        "parent":"1"    },    {        "name":"Vacation Picture",        "id":"3",        "type":"jpg",        "parent":"2"    },]

输出:

[    {        'type': 'folder',         'name': 'TopLevel folder',         'id': '0',        'children': [ {     'type': 'folder',      'name': 'MidLevel folder',      'parent': '0',      'id': '1',     'children': [         {  'type': 'folder',   'name': 'Bottom Level folder',   'parent': '1',   'id': '2',  'children': [      {          'type': 'jpg','name': 'Vacation Picture','parent': '2','id': '3'      }  ]          }     ] }        ]    }]


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/669530.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号