2
votes

I just test py2neo demo,but failed,code is :

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)

output is : (:Person {name: 'Alice'}) traceback is :

TypeError Traceback (most recent call last) ~/miniconda2/envs/py35/lib/python3.5/site-packages/py2neo/internal/http.py in fix_parameters(parameters) 70 try: ---> 71 dehydrated, = dehydrator.dehydrate([parameters]) 72 except TypeError as error:

~/miniconda2/envs/py35/lib/python3.5/site-packages/py2neo/internal/json.py in dehydrate(self, values) 121 --> 122 return tuple(map(dehydrate_, values))

~/miniconda2/envs/py35/lib/python3.5/site-packages/py2neo/internal/json.py in dehydrate_(obj) 117 elif isinstance(obj, dict): --> 118 return {key: dehydrate_(value) for key, value in obj.items()} 119 else:

~/miniconda2/envs/py35/lib/python3.5/site-packages/py2neo/internal/json.py in (.0) 117 elif isinstance(obj, dict): --> 118 return {key: dehydrate_(value) for key, value in obj.items()} 119 else:

~/miniconda2/envs/py35/lib/python3.5/site-packages/py2neo/internal/json.py in dehydrate_(obj) 119 else: --> 120 raise TypeError(obj) 121

TypeError:

During handling of the above exception, another exception occurred:

TypeError Traceback (most recent call last) in () 10 11 print(a) ---> 12 g.create(a)

~/miniconda2/envs/py35/lib/python3.5/site-packages/py2neo/database.py in create(self, subgraph) 343 """ 344 with self.begin() as tx: --> 345 tx.create(subgraph) 346 347 def delete(self, subgraph):

~/miniconda2/envs/py35/lib/python3.5/site-packages/py2neo/database.py in create(self, subgraph) 919 raise TypeError("No method defined to create object %r" % subgraph) 920 else: --> 921 create(self) 922 923 def delete(self, subgraph):

~/miniconda2/envs/py35/lib/python3.5/site-packages/py2neo/data.py in db_create(self, tx) 612 613 def db_create(self, tx): --> 614 create_subgraph(tx, self) 615 616 def db_delete(self, tx):

~/miniconda2/envs/py35/lib/python3.5/site-packages/py2neo/internal/operations.py in create_subgraph(tx, subgraph) 133 for labels, nodes in _node_create_dict(n for n in subgraph.nodes if n.graph is None).items(): 134 identities = _create_nodes(tx, labels, map(dict, nodes)) --> 135 for i, identity in enumerate(identities): 136 node = nodes[i] 137 node.graph = graph

~/miniconda2/envs/py35/lib/python3.5/site-packages/py2neo/internal/operations.py in _create_nodes(tx, labels, data) 84 label_string = "".join(":" + cypher_escape(label) for label in sorted(labels)) 85 cypher = "UNWIND $x AS data CREATE (_%s) SET _ = data RETURN id(_)" % label_string ---> 86 for record in tx.run(cypher, x=data): 87 yield record[0] 88

~/miniconda2/envs/py35/lib/python3.5/site-packages/py2neo/database.py in run(self, cypher, parameters, **kwparameters) 838 try: 839 if self.transaction: --> 840 result = self.transaction.run(cypher, parameters, **kwparameters) 841 else: 842 result = self.session.run(cypher, parameters, **kwparameters)

~/miniconda2/envs/py35/lib/python3.5/site-packages/neo4j/v1/api.py in run(self, statement, parameters, **kwparameters) 603 if self.closed(): 604 raise TransactionError("Transaction closed") --> 605 return self.session.run(statement, parameters, **kwparameters) 606 607 def sync(self):

~/miniconda2/envs/py35/lib/python3.5/site-packages/py2neo/internal/http.py in run(self, statement, parameters, **kwparameters) 288 self._statements.append(OrderedDict([ 289 ("statement", ustr(statement)), --> 290 ("parameters", fix_parameters(dict(parameters or {}, **kwparameters))), 291 ("resultDataContents", ["REST"]), 292 ("includeStats", True),

~/miniconda2/envs/py35/lib/python3.5/site-packages/py2neo/internal/http.py in fix_parameters(parameters) 72 except TypeError as error: 73 value = error.args[0] ---> 74 raise TypeError("Parameters of type {} are not supported".format(type(value).name)) 75 else: 76 return dehydrated

TypeError: Parameters of type map are not supported

the output is not correspond with the demo:'(alice:Person {name:"Alice"})'

1

1 Answers

1
votes

You maybe install the latest version (4.0.0) of py2neo. Some people met the same issue as you, his solution that you can follow py2neo issue 678.

Another solution is that you can install previous version, for example, pip install py2neo==3.1.2, it works for me.