Py2Neo Merge с использованием нескольких ключей свойств - PullRequest
0 голосов
/ 28 июня 2018

Я пытался использовать метод слияния для создания узла с помощью драйвера Py2Neo, но у меня возникли проблемы.

Я пытаюсь tx.merge(a,"Person",('name','age')), но получаю ошибку: TypeError: tuple

В документации по слиянию: здесь сказано: «Обратите внимание, что несколько ключей свойств могут быть указаны с помощью кортежа». Я что-то упустил?

Ответы [ 2 ]

0 голосов
/ 04 июля 2018

В последнее время у меня возникла та же проблема, и после прочтения исходного кода, предоставленного в документации, я пришел к выводу, что py2neo не так с ним говорит, что «несколько ключей могут быть указаны с помощью tuple "независимо от того, какой merge() вы вызываете (в основном потому, что они почти одинаковы, за исключением того, что Graph.merge использует значение автоматической фиксации Transaction), он допускает только 1 ключ и ему не нравится тип кортежа.

В качестве альтернативы вы можете использовать функцию py2neo, которая непосредственно выполняет запрос Cypher MERGE, чтобы включить любые узлы, которые вы пытаетесь создать / объединить (например, Graph.run("MERGE (:Node {...})")). К сожалению, это не решает проблему, но это может быть не в наших руках.

0 голосов
/ 28 июня 2018

Может быть проблема с аргументами функции слияния. Возможно попробуйте:

tx.merge(a, primary_label='Person', primary_key=('name', 'age'))

Также обратите внимание, что в документации есть два разных метода для функций merge. Смотрите разницу между этими двумя ссылками:

http://py2neo.org/v4/database.html#py2neo.database.Graph.merge http://py2neo.org/v4/database.html#py2neo.database.Transaction.merge

...