我一直试图在networkx gml中解析一些附加属性,以便以后使用,但遇到了一个问题。在
当从Cytoscape获得gml文件时,networkx输出它自己无法读取的gml文件。在
即Cytoscape->;Into networkx->;Output->;Into networkx->;错误:
pyparsing.ParseException: Expected "]" (at char 1116756), (line:71732, col:3)
现在,错误请求在节点后面再加一个]的值(也就是说让图形忽略边),如果这样做,图形就会工作。但是,它不再有任何边。在
为了充分测试这一点,我做了“Cytoscape->;Into networkx->Output”,根本不更改代码,只需:
^{pr2}$然后读到:
BasicGraph = nx.read_gml("KeggCompleteEng.gml", relabel = True)
误差仍然是可重复的。所以我假设这与networkx如何编写gml文件有关。在
我使用的两个文件是:
如果有人能对为什么会发生这样的事情有一些了解,我们将不胜感激!在
这是NetworkX中生成嵌套属性(本例中为边缘图形数据)时的一个错误。 额外的一组引号错误地添加到“Line”属性中。在
修复程序已合并为此请求的一部分: https://github.com/networkx/networkx/pull/981
Pyparsing并不是识别何时发生解析错误的最聪明的库。库的较新版本确实支持一些更好的错误识别,但是它们需要对解析器进行一些更新以获取这些信息。在
在没有看到解析器的情况下,从您的描述来看,解析器似乎希望看到如下内容:
结果是它成功地通过了“节点束…”,然后在“可选边束…”部分的一个边中发现了一些语法问题。因为这是可选的,所以只要在节点后面有一个结束的']',事情仍然有效。这就是为什么会得到pyparsing异常消息。但真正的问题是其中一个边缘有一个错误。在
要诊断这个问题,请尝试只给解析器前几个边。然后继续添加越来越多的边,直到您得到pyparsing错误-最近添加的边包含了严重的语法错误。在
相关问题 更多 >
编程相关推荐