如何更改GML文件中节点的id值

时间:2017-03-21 02:24:26

标签: python networkx graph-modelling-language

如何使用自定义ID在nxGraph中创建新节点,或重新标记ID?我试图更改的属性是ID标签设置为' 0':

graph [
  node [
    id 0
    label "Category:Class-based_Programming_Languages"
  ]

我试图这样做,但它没有工作:

G = nx.Graph()
pageid = 12345
G.add_node('test', id = pageid)

但这不会改变“身份证”。价值,而不是直接忽略。在Python程序中可以看到更改的id,但问题在于使用write_gml函数。它不会改变该id值。有谁知道我怎么能这样做?谢谢!

1 个答案:

答案 0 :(得分:1)

节点属性可以按照您尝试的方式设置,但如果您尝试使用“紧凑”节点访问器访问它们,则不会显示它们。各种方式如下所示:

import networkx as nx

G = nx.Graph()
pageid = 12345
G.add_node('test', id = pageid)

# the basic node iterator doesn't show the attributes:    
print G.nodes()
>>> ['test']

# but here are some ways to access them:
print G.nodes(data=True)
>>> [('test', {'id': 12345})]

print nx.get_node_attributes(G, "id")
>>> {'test': 12345}

print G.node['test']
>>> {'id': 12345}