最新版py2neo访问子图中的所有节点时报错:TypeError: ‘SetView‘ object is not callable

最近搞毕业设计,研究知识图谱,在学习python扩展库py2neo时遇到了一个问题,代码如下:

a=Node('Student',name='Alice')
b=Node('Student',name='Bob')
c=Node('Student',name='Carol')
r1=Relationship(a,'knows',b)
r2=Relationship(a,'work_with',c)
s = a | b | c | r1 | r2
print(s.nodes())

然后报错:TypeError: 'SetView' object is not callable
网上查阅了相关资料,都说的是python一旦出现'XXXXXX' object is not callable这一类的报错,大致原因都是在程序中使用了函数作为变量名导致的,会想起以前犯的错误,也确实如此,但是后来在直接打印s.nodes时。

print(s.nodes)

终端展示<interchange.collections.SetView object at 0x0000022EB06425C8>
好家伙,这玩意儿不是个迭代器吗?于是直接用for循环遍历,成功输出子图的所有节点:

a=Node('Student',name='Alice')
b=Node('Student',name='Bob')
c=Node('Student',name='Carol')
r1=Relationship(a,'knows',b)
r2=Relationship(a,'work_with',c)
s = a | b | c | r1 | r2
for i in s.nodes:
    print(i)

终端显示结果:

(:Student {name: 'Alice'})
(:Student {name: 'Bob'})
(:Student {name: 'Carol'})

完美解决~
顺便打印一下它的所有关系也是一个道理s.relationships~

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
社会演员多的头像社会演员多普通用户
上一篇 2022年3月28日 下午2:44
下一篇 2022年3月29日 下午5:39

相关推荐