【问题标题】:How to create one node in py2neo correctly?如何在py2neo中正确创建一个节点?
【发布时间】:2018-07-17 08:16:17
【问题描述】:

我刚刚测试了py2neo demo,但是失败了,代码是:

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 Traceback(最近调用 最后的) ~/miniconda2/envs/py35/lib/python3.5/site-packages/py2neo/internal/http.py 在 fix_parameters(参数) 70尝试: ---> 71 脱水,= dehydrator.dehydrate([参数]) 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 在脱水_(obj) 第117章 --> 118 return {key: dehydrate_(value) for key, value in obj.items()} 119 其他:

~/miniconda2/envs/py35/lib/python3.5/site-packages/py2neo/internal/json.py 在 (.0) 第117章 --> 118 return {key: dehydrate_(value) for key, value in obj.items()} 119 其他:

~/miniconda2/envs/py35/lib/python3.5/site-packages/py2neo/internal/json.py 在脱水_(obj) 119 其他: --> 120 引发类型错误(obj) 121

类型错误:

在处理上述异常的过程中,又发生了一个异常:

TypeError Traceback(最近调用 最后)在() 10 11 打印(一) ---> 12 g.create(a)

~/miniconda2/envs/py35/lib/python3.5/site-packages/py2neo/database.py 在创建(自我,子图) 第343章 344 以 self.begin() 作为 tx: --> 345 tx.create(子图) 346 347 def删除(自我,子图):

~/miniconda2/envs/py35/lib/python3.5/site-packages/py2neo/database.py 在创建(自我,子图) 919 raise TypeError(“没有定义方法来创建对象 %r”% 子图) 920 其他: --> 921 创建(自我) 922 923 def删除(自我,子图):

~/miniconda2/envs/py35/lib/python3.5/site-packages/py2neo/data.py 在 db_create(self, tx) 612 第613章 --> 614 创建子图(TX,自我) 615 616 def db_delete(自我,tx):

~/miniconda2/envs/py35/lib/python3.5/site-packages/py2neo/internal/operations.py 在 create_subgraph(tx, 子图) 133 用于标签,_node_create_dict 中的节点(如果 n.graph 为 None,则为 subgraph.nodes 中的 n).items(): 134 身份 = _create_nodes(TX,标签,地图(字典,节点)) --> 135 for i,枚举中的身份(身份): 136 节点 = 节点 [i] 第137章

~/miniconda2/envs/py35/lib/python3.5/site-packages/py2neo/internal/operations.py 在 _create_nodes(tx, 标签, 数据) 84 label_string = "".join(":" + cypher_escape(label) for label in sorted(labels)) 85 cypher = "UNWIND $x AS 数据创建 (_%s) SET _ = 数据返回 id(_)" % label_string ---> 86 记录在 tx.run(cypher, x=data): 87条产量记录[0] 88

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

~/miniconda2/envs/py35/lib/python3.5/site-packages/neo4j/v1/api.py 在 运行(自我,语句,参数,**kwparameters) 603 如果 self.close(): 604 引发事务错误(“事务已关闭”) --> 605 return self.session.run(statement, parameters, **kwparameters) 606 607 def 同步(自我):

~/miniconda2/envs/py35/lib/python3.5/site-packages/py2neo/internal/http.py 在运行中(自我、声明、参数、**kwparameters) 288 self._statements.append(OrderedDict([ 289(“声明”,ustr(声明)), --> 290 ("参数", fix_parameters(dict(parameters or {}, **kwparameters))), 291(“结果数据内容”,[“休息”]), 292(“includeStats”,真),

~/miniconda2/envs/py35/lib/python3.5/site-packages/py2neo/internal/http.py 在 fix_parameters(参数) 72 除了 TypeError 作为错误: 73 值 = 错误.args[0] ---> 74 raise TypeError("不支持 {} 类型的参数".format(type(value).name)) 75 其他: 76返回脱水

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

输出与演示不对应:'(alice:Person {name:"Alice"})'

【问题讨论】:

    标签: py2neo


    【解决方案1】:

    您可能会安装最新版本 (4.0.0) 的 py2neo。有人遇到和你一样的问题,他的解决方法可以关注py2neo issue 678

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

    【讨论】:

      猜你喜欢
      • 2021-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多