我一直试图解析networkx的一些附加属性,以供以后使用,并且遇到了一个问题。
当从Cytoscape给出gml文件时,networkx输出自己无法读取的gml文件。
例如,将->转换为networkx ->输出->到networkx ->错误:
pyparsing.ParseException: Expected "]" (at char 1116756), (line:71732, col:3)现在,该错误在节点之后请求一个额外的] (AKA使图形忽略边缘),如果这样做,则该图可以工作。然而,它不再有任何边缘。
为了全面测试这一点,我完成了“->到networkx ->输出”,而没有更改代码,只是:
DG = nx.read_gml("KeggComplete.gml", relabel = True)
nx.write_gml(DG, "KeggCompleteEng.gml")
exit()然后用以下内容阅读:
BasicGraph = nx.read_gml("KeggCompleteEng.gml", relabel = True)而且这个错误仍然是可复制的。因此,我认为这与networkx编写gml文件的方式有关。
我使用的两个文件是:
如果有人能给一些洞察力,为什么会发生这种情况,这将是最感谢的!
发布于 2013-10-14 08:42:49
在生成嵌套属性(在本例中为边缘图形数据)时,这是NetworkX中的一个错误。一组额外的引号被错误地添加到"Line“属性中。
修复程序已经合并为这个拉请求的一部分:https://github.com/networkx/networkx/pull/981
发布于 2013-10-14 03:41:38
当解析错误发生时,parsing不是最聪明的库。最近版本的库确实支持一些更好的错误识别,但它们需要对解析器进行一些更新才能获得这些信息。
在没有看到解析器的情况下,从您的描述来看,解析器似乎希望看到如下所示:
[
[
bunch of nodes...
]
[
optional bunch of edges...
]
]所发生的情况是,它成功地通过了“节点束.”,然后在“可选的边束.”中的一个边中发现了一些语法问题.部分。因为这是可选的,所以只要节点后面有一个关闭的“]”,事情仍然是有效的。这就是为什么你会得到那个异常解析消息。但真正的问题是,其中一个边有一个错误。
要诊断这一点,请尝试给解析器提供最初的几个边。然后继续添加越来越多的边,直到得到pyparsing -最近添加的边包含关键的语法错误。
https://stackoverflow.com/questions/19352960
复制相似问题