通过在Python中传递数据变量来创建Neo4j节点

时间:2014-11-25 10:32:39

标签: neo4j py2neo

我使用Python中的大型数据集,并希望在Python中的数据数组中创建Neo4j节点。所以,我这样做的天真尝试将如下所示。

(在Python脚本中)

Product_IDs = data_array [1:1000]#这包含产品ID列表

tot_node_num = len(Product_IDs)#它表示产品ID的总数

graph = Graph()

tx = graph.cypher.begin()

tx.append(" FOREACH(r IN范围(1,tot_node_num)| CREATE(:Product {ID:Product_IDs [r]}))")

tx.commit()

使用上述语句,无法识别变量:tot_node_num和Product_IDs。如何传递我用python脚本创建的数组来在Neo4j图形数据库中创建节点?

谢谢!

1 个答案:

答案 0 :(得分:0)

你是绝对正确的 - 传递变量的最佳方法是通过参数。但请记住,虽然这适用于表达式和属性值,但参数不能用于标签和关系类型。为此,py2neo提供了cypher_escape函数(http://py2neo.org/2.0/cypher.html#py2neo.cypher.cypher_escape):

>>> from py2neo.cypher import cypher_escape
>>> rel_type = "KNOWS WELL"
>>> "MATCH (a)-[:%s]->(b) RETURN a, b" % cypher_escape(rel_type)
'MATCH (a)-[:`KNOWS WELL`]->(b) RETURN a, b'