使用Networkx将特定的Pajek文件读入Jupyter时解析错误

时间:2019-05-24 17:49:57

标签: python-3.x jupyter networkx google-colaboratory pajek

我试图在Google Colab的Jupyter版本中阅读this pajek file,并且在执行以下非常简单的代码时遇到错误:

for (int i =0; i<count; i++) {
  series1.add(new Task(Names.get(i),  
Date.from(LocalDate.of(Dates.get(i).getYear(), Dates.get(i).getMonth(),Dates.get(i).getDay()).atStartOfDay().toInstant(ZoneOffset.UTC)),  
Date.from(LocalDate.of(Dates.get(i+1).getYear(),Dates.get(i+1).getMonth(),Dates.get(i+1).getDay()).atStartOfDay().toInstant(ZoneOffset.UTC))  
         ) 
         );
}

错误如下:

J = nx.MultiDiGraph()
J=nx.read_pajek("/content/data/graphdatasets/jazz.net")
print(nx.info(J))

使用/usr/local/lib/python3.6/dist-packages/networkx/readwrite/pajek.py in parse_pajek(lines) 211 except AttributeError: 212 splitline = shlex.split(str(l)) --> 213 id, label = splitline[0:2] 214 labels.append(label) 215 G.add_node(label) ValueError: not enough values to unpack (expected 2, got 1) ,我看到我正在运行Networkx版本:2.3。我在代码中做错了吗?

1 个答案:

答案 0 :(得分:0)

根据Pajek definition,文件的前两行不符合标准。在*vertices n之后,期望n行包含有关顶点的详细信息。另外,*edges*arcs是重复的。 NetworkX假定使用以*arcsMultiDiGraph开头的边缘列表,以及*edgesMultiGraph开头的边缘列表(请参阅当前的code)。要解决您的问题,只需删除.net文件的前两行。