Обходить вложенный словарь и получить путь в Python?

У меня есть словарь, как:

{
   "checksum": "b884cbfb1a6697fa9b9eea9cb2054183",
   "roots": {
      "bookmark_bar": {
         "children": [ {
            "date_added": "12989159740428363",
            "id": "4",
            "name": "test2",
            "type": "url",
            "url": "chrome://bookmarks/#1"
         } ],
         "date_added": "12989159700896551",
         "date_modified": "12989159740428363",
         "id": "1",
         "name": "bookmark_bar",
         "type": "folder"
      },
      "other": {
         "children": [ {
            "date_added": "12989159740428363",
            "id": "4",
            "name": "test",
            "type": "url",
            "url": "chrome://bookmarks/#1"
         } ],
         "date_added": "12989159700896557",
         "date_modified": "0",
         "id": "2",
         "name": "aaa",
         "type": "folder"
      },
      "synced": {
         "children": [  ],
         "date_added": "12989159700896558",
         "date_modified": "0",
         "id": "3",
         "name": "bbb",
         "type": "folder"
      }
   },
   "version": 1
}

Все начинается с «корней», у них есть два типа данных: URL и папка, они словари. Если это папка, у нее должен быть ключ 'children', значение ключа - это список, в него можно добавить больше URL-адресов и папок.

Теперь я хочу просмотреть этот вложенный словарь, чтобы получить URL-адрес во всех подпапках, поэтому я написал функцию:

def traverse(dic):
    for i in dic:
        if i['type'] == 'folder':
            for j in traverse(i['children']):
                yield j
        elif i['type'] == 'url':
            yield i

и я могу использовать это так:

traverse(dictionary['roots']['bookmark_bar']['children'])

Работает отлично. Но он просто генерирует словарь URL, я не знаю, где он. Я тоже хочу проложить путь. Как мне это сделать?

Ответы на вопрос(2)

Ваш ответ на вопрос