我使用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图形数据库中创建节点?
谢谢!
答案 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'