如何在py2neo中正确创建一个节点?

时间:2018-07-17 08:16:18

标签: py2neo

我只是测试py2neo演示,但失败了,代码是:

from py2neo.data import Node, Relationship
import py2neo
g = py2neo.Graph('http:/172.18.0.52:7474', user='neo4j',password='123')
a = Node("Person", name="Alice")
b = Node("Person", name="Bob")
ab = Relationship(a, "KNOWS", b)
print(a)
g.create(a)

输出为:(:Person {name: 'Alice'}) 追溯是:

  

TypeError跟踪(最近的呼叫   持续)   〜/ miniconda2 / envs / py35 / lib / python3.5 / site-packages / py2neo / internal / http.py   在fix_parameters(parameters)中        70尝试:   ---> 71脱水,= dehydrator.dehydrate([parameters])        72,除了TypeError作为错误:

     

〜/ miniconda2 / envs / py35 / lib / python3.5 / site-packages / py2neo / internal / json.py   脱水(自我,价值观)       121   -> 122返回元组(map(dehydrate_,values))

     

〜/ miniconda2 / envs / py35 / lib / python3.5 / site-packages / py2neo / internal / json.py   在dehydrate_(obj)中       117 Elif isinstance(obj,dict):   -> 118返回{key:key的dehydrate_(value),obj.items()中的值}       119其他:

     

〜/ miniconda2 / envs / py35 / lib / python3.5 / site-packages / py2neo / internal / json.py   在(.0)中       117 Elif isinstance(obj,dict):   -> 118返回{key:key的dehydrate_(value),obj.items()中的值}       119其他:

     

〜/ miniconda2 / envs / py35 / lib / python3.5 / site-packages / py2neo / internal / json.py   在dehydrate_(obj)中       119其他:   -> 120引发TypeError(obj)       121

     

TypeError:

     

在处理上述异常期间,发生了另一个异常:

     

TypeError跟踪(最近的呼叫   最后)在()        10        11列(a)   ---> 12 g.create(a)

     

〜/ miniconda2 / envs / py35 / lib / python3.5 / site-packages / py2neo / database.py   在create(自己,子图)中       343“”“       344 with self.begin()作为tx:   -> 345 tx.create(子图)       346       347 def delete(self,subgraph):

     

〜/ miniconda2 / envs / py35 / lib / python3.5 / site-packages / py2neo / database.py   在create(自己,子图)中       919引发TypeError(“未定义创建对象%r的方法”%子图)       920其他:   -> 921创建(自己)       922       923 def delete(self,subgraph):

     

〜/ miniconda2 / envs / py35 / lib / python3.5 / site-packages / py2neo / data.py在    db_create (自己,TX)       612       613 def db_create (self,tx):   -> 614 create_subgraph(tx,self)       615       616 def db_delete (自身,TX):

     

〜/ miniconda2 / envs / py35 / lib / python3.5 / site-packages / py2neo / internal / operations.py   在create_subgraph(tx,subgraph)中       标签为133,_node_create_dict中的节点(如果n.graph为None,则subgraph.nodes中为n的n).items():       134个身份= _create_nodes(tx,标签,map(dict,节点))   -> 135 for i,枚举(identities)中的身份:       136个节点=个节点[i]       137 node.graph = graph

     

〜/ miniconda2 / envs / py35 / lib / python3.5 / site-packages / py2neo / internal / operations.py   在_create_nodes中(tx,标签,数据)        84 label_string =“” .join(“:” + cypher_escape(label)用于sorted(labels)中的标签)        85 cypher =“ UNWIND $ x AS数据创建(_%s)SET _ =数据返回ID(_)”%label_string   --->在tx.run(cypher,x = data)中记录的86:        87条创纪录[0]        88

     

〜/ miniconda2 / envs / py35 / lib / python3.5 / site-packages / py2neo / database.py   运行中(自身,密码,参数,** kw参数)       838尝试:       第839章真相   -> 840结果= self.transaction.run(密码,参数,** kwparameters)       841其他:       842 result = self.session.run(密码,参数,** kwparameters)

     

〜/ miniconda2 / envs / py35 / lib / python3.5 / site-packages / neo4j / v1 / api.py在   运行(自我,陈述,参数,** kwparameters)       603如果self.closed():       604提高TransactionError(“交易已关闭”)   -> 605返回self.session.run(语句,参数,** kwparameters)       606       607 def同步(自己):

     

〜/ miniconda2 / envs / py35 / lib / python3.5 / site-packages / py2neo / internal / http.py   运行中(自身,语句,参数,** kwparameters)       第288章       289(“ statement”,ustr(statement)),   -> 290(“参数”,fix_parameters(dict(参数(或{},** kwparameters)))),       291(“ resultDataContents”,[“ REST”]),       292(“ includeStats”,True),

     

〜/ miniconda2 / envs / py35 / lib / python3.5 / site-packages / py2neo / internal / http.py   在fix_parameters(parameters)中        72,除了TypeError作为错误:        73值= error.args [0]   ---> 74引发TypeError(“不支持{}类型的参数”。format(类型(值)。名称))        75其他:        76脱水脱水

     

TypeError:不支持映射类型的参数

输出与演示不符:'(alice:Person {name:“ Alice”})'

1 个答案:

答案 0 :(得分:1)

您可能安装了py2neo的最新版本(4.0.0)。有人遇到了与您相同的问题,您可以遵循py2neo issue 678的解决方案。

另一种解决方案是您可以安装以前的版本,例如pip install py2neo==3.1.2,它对我有用。