#python #neo4j #py2neo
Вопрос:
Попытка использовать предикаты с NodeMatcher()
помощью … я делаю здесь что-то не так?
In [24]: nodes = NodeMatcher(neodb)
In [25]: nodes.match("Interface", ipv4=STARTS_WITH("192.168.240.170")).first()
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-25-22cdc9c394bd> in <module>
----> 1 nodes.match("Interface", ipv4=STARTS_WITH("192.168.240.170")).first()
NameError: name 'STARTS_WITH' is not defined
Ответ №1:
Синтаксис неверен. Пожалуйста, обратитесь к этой документации: https://py2neo.org/v4/matching.html
Вы должны добавить к свойству __startswith . Например:
nodes.match("Interface", ipv4__startswith="192.168.240.170").first()
Комментарии:
1. нет, это неправильно, обновленная версия поддерживает приведенный выше синтаксис: py2neo.org/2021.1/matching.html#applying-predicates
Ответ №2:
Решение заключается в том, что мне нужно было импортировать класс предикатов:
In [13]: from py2neo.matching import STARTS_WITH
In [14]: nodes.match("Interface", ipv4=STARTS_WITH("192.168")).first()
Out[14]: Node('Interface', admin=True, description='inside', hostUUID='asa-core', ipv4='192.168.199.11/27', name='GigabitEthernet0/0', operational=True)