Нахождение кратчайшего пути между элементами вложенного словаря

Как найти путь между любыми двумя элементами вложенного словаря следующим образом:

{
  'word':'good',
  'nodeType':'root',
  'attributes':[
      'JJ'
  ],
  'link':'root',
  'spans':[
      {
        'start':25,
        'end':30
      }
  ],
  'children':[
      {
        'word':'resolution',
        'nodeType':'nsubj',
        'attributes':[
            'NN'
        ],
        'link':'nsubj',
        'spans':[
            {
              'start':11,
              'end':22
            }
        ],
        'children':[
            {
              'word':'the',
              'nodeType':'det',
              'attributes':[
                  'DT'
              ],
              'link':'det',
              'spans':[
                  {
                    'start':0,
                    'end':4
                  }
              ]
            },
            {
              'word':'screen',
              'nodeType':'nn',
              'attributes':[
                  'NN'
              ],
              'link':'nn',
              'spans':[
                  {
                    'start':4,
                    'end':11
                  }
              ]
            }
        ]
      },
      {
        'word':'is',
        'nodeType':'cop',
        'attributes':[
            'VBZ'
        ],
        'link':'cop',
        'spans':[
            {
              'start':22,
              'end':25
            }
        ]
      },
      {
        'word':'but',
        'nodeType':'cc',
        'attributes':[
            'CC'
        ],
        'link':'cc',
        'spans':[
            {
              'start':30,
              'end':34
            }
        ]
      },
      {
        'word':'high',
        'nodeType':'conj',
        'attributes':[
            'JJ'
        ],
        'link':'conj',
        'spans':[
            {
              'start':51,
              'end':56
            }
        ],
        'children':[
            {
              'word':'price',
              'nodeType':'nsubj',
              'attributes':[
                  'NN'
              ],
              'link':'nsubj',
              'spans':[
                  {
                    'start':38,
                    'end':44
                  }
              ],
              'children':[
                  {
                    'word':'the',
                    'nodeType':'det',
                    'attributes':[
                        'DT'
                    ],
                    'link':'det',
                    'spans':[
                        {
                          'start':34,
                          'end':38
                        }
                    ]
                  }
              ]
            },
            {
              'word':'is',
              'nodeType':'cop',
              'attributes':[
                  'VBZ'
              ],
              'link':'cop',
              'spans':[
                  {
                    'start':44,
                    'end':47
                  }
              ]
            },
            {
              'word':'too',
              'nodeType':'advmod',
              'attributes':[
                  'RB'
              ],
              'link':'advmod',
              'spans':[
                  {
                    'start':47,
                    'end':51
                  }
              ]
            }
        ]
      }
  ]
}

Учитывая два ключа, мне нужно найти все атрибуты узлов и ссылки, через которые нужно пройти, чтобы добраться до другого элемента.

0 ответов

Другие вопросы по тегам