Передача параметров как dict в tx.run в Neo4j - PullRequest
0 голосов
/ 06 августа 2020

Я пытаюсь написать общую функцию c, чтобы принимать запрос 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)"

Либо я ошибаюсь, либо в этом контексте вы не можете передать dict именованных параметров в tx.run () ... может ли кто-нибудь меня исправить? Спасибо!

1 Ответ

1 голос
/ 07 августа 2020

Вы не можете использовать параметры в качестве имен меток

https://neo4j.com/docs/cypher-manual/current/syntax/parameters/

Вам нужно будет создать свой собственный сгенерированный запрос с желаемой меткой и проверками безопасности.

Однако вы можете изучить аддон apo c, который может позволить это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...