首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >意外错误读取GML图

意外错误读取GML图
EN

Stack Overflow用户
提问于 2015-10-01 19:22:18
回答 2查看 6.1K关注 0票数 6

我已经下载了包含dolphins social network的gml文件。

不久前,我对运行python3.4和networkx1.9的网络在Windows7机器上做了一些分析,但现在我在Arch机器上运行(使用相同版本的python,但使用networkx1.10的),在试图读取文件时发现了一个问题。

这是用于读取文件的代码:

代码语言:javascript
复制
import networkx as nx
nx.read_gml("dolphins.gml")

这是错误的堆栈跟踪:

代码语言:javascript
复制
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<string>", line 2, in read_gml
File "/usr/lib/python3.4/site-packages/networkx/utils/decorators.py",line 220, in _open_file
result = func(*new_args, **kwargs)
File "/usr/lib/python3.4/site-packages/networkx/readwrite/gml.py", line 210, in read_gml
G = parse_gml_lines(filter_lines(path), label, destringizer)
File "/usr/lib/python3.4/site-packages/networkx/readwrite/gml.py", line 383, in parse_gml_lines
graph = parse_graph()
File "/usr/lib/python3.4/site-packages/networkx/readwrite/gml.py", line 372, in parse_graph
curr_token, dct = parse_kv(next(tokens))
File "/usr/lib/python3.4/site-packages/networkx/readwrite/gml.py", line 323, in tokenize
(line[pos:], lineno + 1, pos + 1))
networkx.exception.NetworkXError: cannot tokenize 'graph' at (1, 1)

你能读到文件吗?有人经历过类似的问题吗?或者知道是什么产生了错误?

提前谢谢你!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-10-01 21:37:11

它通过将networkx版本从1.10降至1.9.1进行了工作。

希望这个答案能帮助到其他人。

票数 3
EN

Stack Overflow用户

发布于 2016-06-14 18:38:38

在较新版本的networkx中,gml文件应该遵循更特定的格式。dolphins.gml的问题是,在开放的方括号之前不应该有任何回车。例如:

格式错误:

代码语言:javascript
复制
graph 
[
  directed 0
  node 
  [
    id 0
    label "Beak"
  ]
  .
  .
  .

正确格式:

代码语言:javascript
复制
graph [
  directed 0
  node [
    id 0
    label "Beak"
  ]
  .
  .
  .

它不在乎在方括号前有多少空位,只要有超过一个,而且没有回车。

最后我所做的是使用正则表达式来去掉开头方括号之前的空格。以下准则适用于我:

代码语言:javascript
复制
\s+\[

代之以“[”]。支架前必须至少有一个空格。

还要记住,每个节点都必须有一个唯一的标签。

希望能帮上忙。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32895291

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档