python ipycytoscape доступ к узлу по идентификатору

#python #graph #ipywidgets #ipycytoscape

#python #График #ipywidgets #ipycytoscape

Вопрос:

Предполагая, что у меня есть график ipycytoscape следующим образом:

 railnet= '''{
    "nodes": [
        {"data": { "id": "BER", "label":"HBf BER", "classes":"east"}},
        {"data": { "id": "MUN", "label":"HBf MUN", "classes":"west"}},
        {"data": { "id": "FRA", "label":"HBf FRA", "classes":"west"}}
        ],
    "edges": [
        {"data": { "id": "line1", "source": "BER", "target": "MUN","label":"200km/h"}},
        {"data": { "id": "line2", "source": "MUN", "target": "FRA","label":"200km/h"}},
        {"data": { "id": "line3", "source": "FRA", "target": "BER","label":"250km/h" }}           
    ]
  }'''

railnetJSON = json.loads(railnet)
ipycytoscape_obj3 = ipycytoscape.CytoscapeWidget()
ipycytoscape_obj3.graph.add_graph_from_json(railnetJSON, directed=False) # I am telling I dont want directions
ipycytoscape_obj3
 

Как я могу легко получить доступ к узлу с идентификатором?

это не работает:

 ipycytoscape_obj3.graph.nodes['BER']. # --> wrong
 

Ответ №1:

Это связано с тем, что id информация находится внутри данных. Я не проверял это, но, может nodes['data']['BER'] быть, это сработает? Вы можете проверить этот пример для более сложного взаимодействия ребра / узла. Проверьте сеанс Pandas в этом ноутбуке. И, как всегда, не стесняйтесь открывать выпуск по репо. Спасибо!