加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 从GML文件中提取数据

发布时间:2020-12-20 11:25:29 所属栏目:Python 来源:网络整理
导读:我有一个GML(图形(不是涂鸦)建模语言)文件,我想从中创建ID到标签的映射.我不知道如何做到这一点,因为我的列表操作似乎不起作用.我尝试使用指定如何使用两个分隔符的示例,但它不适用于我的文件. 有人可以指导我吗? GML文件排列如下: graph [ node [ id 0 la
我有一个GML(图形(不是涂鸦)建模语言)文件,我想从中创建ID到标签的映射.我不知道如何做到这一点,因为我的列表操作似乎不起作用.我尝试使用指定如何使用两个分隔符的示例,但它不适用于我的文件.

有人可以指导我吗?

GML文件排列如下:

graph [
  node [
    id 0
    label "24"
  ]
  node [
    id 1
    label "25"
  ]
  node [
    id 2
    label "26"
  ]
  node [
    id 3
    label "27"
  ]
  node [
    id 4
    label "20"
  ]
  node [
    id 5
    label "21"
  ]
(... some more nodes)
  edge [
    source 0
    target 75
    weight 4
  ]
  edge [
    source 0
    target 68
    weight 2
  ]
(many more edges)
]

我想提取每个节点块中的数据,并创建节点ID到节点标签的映射.例如,第一个节点的映射将是0-> 24,依此类推.我并不担心边缘信息.

在此先感谢您的帮助.

解决方法

如果您可以使用NetworkX(Python),您可以像这样读取文件(t.gml是您的文件)并获取映射

In [1]: import networkx as nx

In [2]: G = nx.read_gml('t.gml')

In [3]: G.node
Out[3]: 
{0: {'id': 0,'label': u'24'},1: {'id': 1,'label': u'25'},2: {'id': 2,'label': u'26'},3: {'id': 3,'label': u'27'},4: {'id': 4,'label': u'20'},5: {'id': 5,'label': u'21'}}

例如

In [4]: G.node[0]['label']
Out[4]: u'24'

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读