Объект "Graph" не имеет атрибута "nodes iter" в модуле networkx python

у меня есть функция ниже в python2.7 использование модуля networkx, который создает ошибку.

for H in networkx.connected_component_subgraphs(G):
    bestScore = -1.0
    for n, d in H.nodes_iter(data=True):
        if d['Score'] > bestScore:
            bestScore = d['Score']
            bestSV = n
    if bestSV is not None:
        selectedSVs.add(bestSV)

ошибка:

Traceback (most recent call last):
File "cnvClassifier.py", line 128, in <module>
for n, d in H.nodes_iter(data=True):
AttributeError: 'Graph' object has no attribute 'nodes_iter'

2 ответов


вы, вероятно, используете предварительную версию networkx-2.0, которая удалила метод nodes_iter() и теперь предоставляет метод nodes () с той же функциональностью. См.https://networkx.readthedocs.org/en/latest/reference/release_2.0.html для получения подробной информации об изменениях networkx-2.0.


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

от NetworkX 2.0 вперед, вы должны изменить следующую строку кода от:

for n, d in H.nodes_iter(data=True):

в:

for n, d in list(H.nodes(data=True)):