2024-06-16 09:08:47 发布
网友
我试图从networkX读取GML(图形建模语言)文件,但它返回ParseError。在
我只写了几行代码:
import networkx as nx G = nx.read_gml('test.gml') print G.node
这是GML文件:
这是我得到的错误:
ParseException: Expected "]" (at char 23), (line:3, col:3)
但是,我没有看到任何]丢失
]
解析器正在与您的输入混淆。我以前从来没有使用过gml,但是我一次建立了一个gml文件,发现了两个问题。在
shape
(132, 258)
假设this reference是正确的,有4种可能的值类型:
A value may have one out of four possible types, an integer (type gml$ _$int), a double (type gml$ _$double), a string (type gml$ _$string), or a list of GML objects (type gml$ _$list).
因此(132, 258)是无效的,我相信没有值也是无效的。在
下面的gml将尝试加载它。在
graph [ directed 1 node [ id 0 label 1 #shape name "square" #center (132, 258) ] node [ id 1 label 2 #shape name "triangle" #center (132, 128) ] edge [ source 0 target 1 relation "below" ] edge [ source 1 target 0 relation "above" ] ]
我发现nx.write_gml不支持混合图,包括嵌套图。因此,即使您正确地创建了图形,它也不会正确地将其写入文件。在
nx.write_gml
这里有一个可供选择的平面结构,尽管我不知道这是否是一种构造数据的好方法。它制作的标签可以用来标识每个形状的角。在
输出:
graph [ directed 1 node [ id 1 label "0" name "square" ] node [ id 0 label "0.corners.1" y 1 x 0 ] node [ id 2 label "0.corners.3" y 0 x 1 ] node [ id 3 label "0.corners.2" y 1 x 1 ] node [ id 4 label "0.corners.0" y 0 x 0 ] edge [ source 0 target 3 ] edge [ source 1 target 0 ] edge [ source 1 target 4 ] edge [ source 1 target 2 ] edge [ source 1 target 3 ] edge [ source 2 target 4 ] edge [ source 3 target 2 ] edge [ source 4 target 0 ] ]
眼前的问题
解析器正在与您的输入混淆。我以前从来没有使用过gml,但是我一次建立了一个gml文件,发现了两个问题。在
shape
键(132, 258)
假设this reference是正确的,有4种可能的值类型:
因此
(132, 258)
是无效的,我相信没有值也是无效的。在下面的gml将尝试加载它。在
替代方案
我发现
nx.write_gml
不支持混合图,包括嵌套图。因此,即使您正确地创建了图形,它也不会正确地将其写入文件。在这里有一个可供选择的平面结构,尽管我不知道这是否是一种构造数据的好方法。它制作的标签可以用来标识每个形状的角。在
^{pr2}$输出:
相关问题 更多 >
编程相关推荐