Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Neo4j py2neo:制作节点的深度副本并将其存储在本地_Neo4j_Nodes_Deep Copy_Py2neo - Fatal编程技术网

Neo4j py2neo:制作节点的深度副本并将其存储在本地

Neo4j py2neo:制作节点的深度副本并将其存储在本地,neo4j,nodes,deep-copy,py2neo,Neo4j,Nodes,Deep Copy,Py2neo,是否可以制作节点对象的深度副本并将其存储在任何普通容器(如列表)中,而不存储在neo4j数据库中?我需要做的是创建一个从数据库检索的节点的副本,然后修改副本的某些属性并临时存储它。然后再将其合并到数据库中。Py2neoNode对象有一个unbind方法,该方法将使节点与其远程对应节点(在数据库中)分离。因此,您可以获取一些节点对象,解除它们的绑定,并将它们保存到列表中: node_list = [] for node in graph.find("Person"): node.unbin

是否可以制作节点对象的深度副本并将其存储在任何普通容器(如列表)中,而不存储在neo4j数据库中?我需要做的是创建一个从数据库检索的节点的副本,然后修改副本的某些属性并临时存储它。然后再将其合并到数据库中。

Py2neo
Node
对象有一个
unbind
方法,该方法将使节点与其远程对应节点(在数据库中)分离。因此,您可以获取一些节点对象,解除它们的绑定,并将它们保存到列表中:

node_list = []
for node in graph.find("Person"):
    node.unbind()
    node_list.append(node)

node_list
------------
[<Node labels={'Person'} properties={'name': 'Jim'}>,
<Node labels={'Person'} properties={'name': 'Anna'}>,
<Node labels={'Person'} properties={'name': 'Sally'}>,
<Node labels={'Person'} properties={'name': 'Joe'}>,
<Node labels={'Person'} properties={'name': 'Bob'}>,
<Node labels={'Person'} properties={'name': 'Mike'}>,
<Node labels={'Person'} properties={'name': 'Billy'}>]
node_list=[]
对于graph.find(“Person”)中的节点:
node.unbind()
node\u list.append(节点)
节点列表
------------
[,
,
,
,
,
,
]
节点对象还支持pickle序列化/反序列化:

import pickle
pickle.dump(node_list, open("nodes.p", "wb"))
node_list_from_pickle = pickle.load(open("nodes.p", "rb"))

node_list_from_pickle
---------------------
[<Node labels={'Person'} properties={'name': 'Jim'}>,
<Node labels={'Person'} properties={'name': 'Anna'}>,
<Node labels={'Person'} properties={'name': 'Sally'}>,
<Node labels={'Person'} properties={'name': 'Joe'}>,
<Node labels={'Person'} properties={'name': 'Bob'}>,
<Node labels={'Person'} properties={'name': 'Mike'}>,
<Node labels={'Person'} properties={'name': 'Billy'}>]
导入pickle
pickle.dump(节点列表,打开(“nodes.p”、“wb”))
节点\u列表\u from\u pickle=pickle.load(打开(“nodes.p”、“rb”))
节点\u列表\u来自\u pickle
---------------------
[,
,
,
,
,
,
]

节点对象包含一个LabelSet(它是
set
的子类)和PropertySet(它是
dict
的子类),因此如果您真的想进行deepcopy,您只需要在节点实例中获取这两个对象

Py2neo
Node
对象有一个
unbind
方法,该方法将节点与其远程对应对象(在数据库中)分离。因此,您可以获取一些节点对象,解除它们的绑定,并将它们保存到列表中:

node_list = []
for node in graph.find("Person"):
    node.unbind()
    node_list.append(node)

node_list
------------
[<Node labels={'Person'} properties={'name': 'Jim'}>,
<Node labels={'Person'} properties={'name': 'Anna'}>,
<Node labels={'Person'} properties={'name': 'Sally'}>,
<Node labels={'Person'} properties={'name': 'Joe'}>,
<Node labels={'Person'} properties={'name': 'Bob'}>,
<Node labels={'Person'} properties={'name': 'Mike'}>,
<Node labels={'Person'} properties={'name': 'Billy'}>]
node_list=[]
对于graph.find(“Person”)中的节点:
node.unbind()
node\u list.append(节点)
节点列表
------------
[,
,
,
,
,
,
]
节点对象还支持pickle序列化/反序列化:

import pickle
pickle.dump(node_list, open("nodes.p", "wb"))
node_list_from_pickle = pickle.load(open("nodes.p", "rb"))

node_list_from_pickle
---------------------
[<Node labels={'Person'} properties={'name': 'Jim'}>,
<Node labels={'Person'} properties={'name': 'Anna'}>,
<Node labels={'Person'} properties={'name': 'Sally'}>,
<Node labels={'Person'} properties={'name': 'Joe'}>,
<Node labels={'Person'} properties={'name': 'Bob'}>,
<Node labels={'Person'} properties={'name': 'Mike'}>,
<Node labels={'Person'} properties={'name': 'Billy'}>]
导入pickle
pickle.dump(节点列表,打开(“nodes.p”、“wb”))
节点\u列表\u from\u pickle=pickle.load(打开(“nodes.p”、“rb”))
节点\u列表\u来自\u pickle
---------------------
[,
,
,
,
,
,
]
节点对象包含一个LabelSet(它是
set
的子类)和PropertySet(它是
dict
的子类),因此如果您真的想进行deepcopy,您只需要在节点实例中获取这两个对象