TypeError:' NoneType'对象不支持项目分配

时间:2016-01-27 18:00:48

标签: python-2.7 graphml pygraph

我正在尝试使用以下Code

解析GraphMl文件

我得到以下error

请你帮我解决这个问题?

1 个答案:

答案 0 :(得分:0)

注意:这是我第一次遇到 pygraphml

问题似乎是图表定义文件( test.graphml )中的逻辑错误。除了pygraphml2.0之外,似乎没有处理好这样的错误:

正如所指出的,错误:e[attr.getAttribute("key")] = attr.firstChild.data 来自 graphml_parser.py 114

e

pygraphml.edge.Edge / 类型为e = g.add_edge_by_label(source, dest) 的对象,并在 110 行的同一文件中初始化:

e

问题是Noneg,因此是错误。 e(实例化pygraphml.graph.Graph)是add_edge_by_label类型的对象。转到 graph.py def add_edge_by_label(self, label1, label2): """ """ n1 = None n2 = None for n in self._nodes: if n['label'] == label1: n1 = n if n['label'] == label2: n2 = n if n1 and n2: return self.add_edge(n1, n2) else: return 147 行定义:

return

所以,你正在敲击最后一个Graph.add_edge_by_label语句,这意味着在 test.graphml 中你有(至少)一个边有一个标签(或者两个都有),不属于任何图形节点。

显然,使用 pygraphml 会出现问题(我认为这是一个错误),如果None可以返回None,则应执行GraphMLParser.parse测试{{ 1}}(也可能在其他地方)。

HTH(如果没有,你可以把图形文件发给我看看)。