使用networkx(python)读取GML文件,而不使用节点标签

使用networkx(python)读取GML文件,而不使用节点标签,python,networkx,graph-modelling-language,Python,Networkx,Graph Modelling Language,我有一个很长的GML文件(图形建模语言),我正试图用Python中的Networkx阅读它。 在GML文件中,节点没有标签,如下所示: graph [ node [ id 1 ] node [ id 2 ] edge [ source 2 target 1 ] ] 我在读取文件时出错: G=nx.read\u gml('simple\u graph.gml')) ----------------------------------

我有一个很长的GML文件(图形建模语言),我正试图用Python中的Networkx阅读它。 在GML文件中,节点没有标签,如下所示:

graph [
  node [
    id 1
  ]
  node [
    id 2
  ]
  edge [
    source 2
    target 1
    ]
  ]
我在读取文件时出错: G=nx.read\u gml('simple\u graph.gml'))

---------------------------------------------------------------------------
NetworkXError回溯(最近一次呼叫上次)
在()
---->1g=nx.read\u gml('simple\u graph.gml'))
in read_gml(路径、标签、解析器)
/打开文件中的usr/lib/python2.7/dist-packages/networkx/utils/decorators.pyc(func,*args,**kwargs)
218#最后,我们调用原始函数,确保关闭fobj。
219尝试:
-->220结果=函数(*新参数,**kwargs)
221最后:
222如果关闭_fobj:
/read_gml中的usr/lib/python2.7/dist-packages/networkx/readwrite/gml.pyc(路径、标签、析构函数)
208产量线
209
-->210 G=解析gml行(过滤行(路径)、标签、分解器)
211返回G
212
/parse_gml_行中的usr/lib/python2.7/dist-packages/networkx/readwrite/gml.pyc(行、标签、析构函数)
407引发NetworkXError('节点id%r重复'%(id,))
408如果标签!='id':
-->409 label=pop_attr(节点,'node','label',i)
410如果标签中有标签:
411引发NetworkXError('节点标签%r重复'%(标签,))
/pop_attr(dct,type,attr,i)中的usr/lib/python2.7/dist-packages/networkx/readwrite/gml.pyc
397除按键错误外:
398提升网络错误(
-->399“%s#%d”没有“%s”属性“%(类型、i、属性))
400
401节点=graph.get('node',[])
NetworkXError:节点#0没有“label”属性
我看到它抱怨是因为节点没有标签。从GML的文档中,我认为标签不是强制性的(也许我错了?)。有没有办法读取这样一个没有标签的文件?或者我应该更改我的gml文件吗?
谢谢你的帮助

如果要在GML中使用
id
属性来标记节点,可以为
nx.read\u GML
参数指定标签属性,如下所示

G = nx.read_gml('simple_graph.gml', label='id')

您知道将此gml文件转换为txt、csv或其他格式的解决方案吗?@AMICHARADAVA gml文件已经是一个文本文件。您可以在文本编辑器中打开它并将其保存在*.txt或*.csv文件中。如果您想将GML更改为特定的文本格式(通常是这种情况),则需要创建自己的解析器。
G = nx.read_gml('simple_graph.gml', label='id')