如何在 py2neo 中将参数作为 属性 名称传递?
How to pass parameter as property name in py2neo?
我在将参数作为 属性 名称传递时出错。通过编写 {param} 将参数作为 属性 值传递时,我没有收到任何错误。但这在将参数作为 属性 name.
传递的情况下不起作用
这是我的代码。
query = 'Merge(c1:Customer{user_id: {user_id1},{user_id2}:{cell}})'
g.run(query, user_id1=int(row['user_id']), user_id2=str(cidx),cell=cell)
这里cidx, cell, row['user_id']
是参数。
{user_id1}
参数有效。
但是不以{user_id2}
为参数添加属性名称
Cypher queries cannot be parametrized by Property names.
参数可用于:
- 文字和表达式
- 节点和关系 ID
- 仅适用于显式索引:索引值和查询
参数不能用于以下构造,因为它们构成编译到查询计划中的查询结构的一部分:
属性 键;所以,MATCH (n) WHERE n.$param = 'something'
无效
关系类型
标签
参考Neo4j Documentation了解更多详情。
编辑:
您可以格式化字符串以添加 属性 名称为:
query = 'Merge(c1:Customer{user_id: {user_id1}, %s :{cell}})' % str(cidx)
从 运行 方法中删除参数 user_id2
:
g.run(query, user_id1=int(row['user_id']), cell=cell)
我在将参数作为 属性 名称传递时出错。通过编写 {param} 将参数作为 属性 值传递时,我没有收到任何错误。但这在将参数作为 属性 name.
传递的情况下不起作用这是我的代码。
query = 'Merge(c1:Customer{user_id: {user_id1},{user_id2}:{cell}})'
g.run(query, user_id1=int(row['user_id']), user_id2=str(cidx),cell=cell)
这里cidx, cell, row['user_id']
是参数。
{user_id1}
参数有效。
但是不以{user_id2}
为参数添加属性名称
Cypher queries cannot be parametrized by Property names.
参数可用于:
- 文字和表达式
- 节点和关系 ID
- 仅适用于显式索引:索引值和查询
参数不能用于以下构造,因为它们构成编译到查询计划中的查询结构的一部分:
属性 键;所以,
MATCH (n) WHERE n.$param = 'something'
无效关系类型
标签
参考Neo4j Documentation了解更多详情。
编辑:
您可以格式化字符串以添加 属性 名称为:
query = 'Merge(c1:Customer{user_id: {user_id1}, %s :{cell}})' % str(cidx)
从 运行 方法中删除参数 user_id2
:
g.run(query, user_id1=int(row['user_id']), cell=cell)