python - 在 Neo4j 中将参数作为 dict 传递给 tx.run
问题描述
我正在尝试编写一个通用函数来获取 Cypher 查询和参数字典,并能够动态运行任何给定的查询。我所拥有的看起来像这样:
def _run_cypher(tx, cypher, params = {}):
results = []
tx.run(cypher, parameters=params)
使用如下所示的查询:
'CREATE INDEX ON :$label(filemd5)'
并将参数传递为
params = {'label': label}
我收到此错误:
Invalid input '$': expected whitespace or a label name (line 1, column 18 (offset: 17))
"CREATE INDEX ON :$label(filemd5)"
要么我错了,要么在这种情况下你不能将命名参数的字典传递给 tx.run()...谁能让我直截了当?谢谢!
解决方案
您不能将参数用作标签名称
https://neo4j.com/docs/cypher-manual/current/syntax/parameters/
您将需要使用所需的标签和安全检查创建自己的生成查询。
但是,您可能想查看 apoc 插件,它可能允许这样做。
推荐阅读
- python - 如何使用 numpy 将矩阵简化为行梯形?
- python - 创建一个通过读取多个 CSV 文件创建字典的类 - Python
- csv - 寻找一种将 csv 文件写入 mdf4 格式的方法?
- excel - 如何为 strBody 变量选择单元格范围而不是仅 2 个单元格?
- perl - 使用 Perl 从块中解析文本
- php - PHP - 我将如何扫描特定的 UDP 端口以查看我的游戏服务器是否在线
- sql - 创建一个视图,将来自其他表多个单元格的数据连接到一个 oracle sql 中
- ios - 使用建议栏快速获取键盘大小
- javascript - 如何在javascript中的每个单词后添加一个符号
- java - 从 Spring Boot 示例代码中不断收到 403 禁止