Pessoal, boa noite...
Estou com um problema em um exercicio da pós-graduação, onde tenho que criar uns nós e depois a relação entre eles.
A criação dos nós está tranquila, está funcionando de boa...
mas quando vou tentar crias a relações, dá um erro que não estou conseguindo resolvê-lo..
Deve ser uma besteira na sintaxe, mas até agora não encontrei....
O código é este..
from neo4j import GraphDatabase
class ConnGraphDatabase:
def __init__(self, uri, user, password):
self.driver = GraphDatabase.driver(uri, auth=(user, password))
def close(self):
self.driver.close()
def cria_usuario(self, message):
with self.driver.session() as session:
greeting = session.write_transaction(self._create_and_return_usuario, message)
print(greeting)
def cria_relacao(self, person1_name, person2_name):
with self.driver.session() as session:
greeting = session.write_transaction(self._create_relationship, person1_name, person2_name)
print(greeting)
@staticmethod
def _create_and_return_usuario(tx, message):
result = tx.run("CREATE (a:Usuario) "
"RETURN a.nome + ', from node ' + id(a)", message=message)
return result.single()[0]
@staticmethod
def _create_relationship(tx, person1_name, person2_name):
query = (
"MATCH (u:Usuario {name: $person1_name })"
"MATCH (s:Usuario {name: $person2_name })"
"CREATE (u)-[:FOLLOWS]->(s)")
result = tx.run(query, person1_name=person1_name, person2_name=person2_name)
return result.single()[0]
if __name__ == "__main__":
greeter = ConnGraphDatabase("bolt://localhost:7687", "app_redesocial", "10203040")
#greeter.cria_usuario("Bob")
#greeter.cria_usuario("Alice")
#greeter.cria_usuario("Lea")
#greeter.cria_usuario("Ana")
#greeter.cria_usuario("Joel")
#greeter.cria_usuario("Martha")
#greeter.cria_usuario("Joao")
#greeter.cria_usuario("Mara")
greeter.cria_relacao("Ana", "Joel")
greeter.close()
e o erro que dá quando tenho executar é
python .\neoCreate.py
Traceback (most recent call last):
File "C:\Aulas\Neo4J\neoCreate.py", line 52, in <module>
greeter.cria_relacao("Ana", "Joel")
File "C:\Aulas\Neo4J\neoCreate.py", line 19, in cria_relacao
greeting = session.write_transaction(self._create_relationship, person1_name, person2_name)
File "C:\Python39\lib\site-packages\neo4j\work\simple.py", line 434, in write_transaction
return self._run_transaction(WRITE_ACCESS, transaction_function, *args, **kwargs)
File "C:\Python39\lib\site-packages\neo4j\work\simple.py", line 338, in _run_transaction
result = transaction_function(tx, *args, **kwargs)
File "C:\Aulas\Neo4J\neoCreate.py", line 38, in _create_relationship
return result.single()[0]
TypeError: 'NoneType' object is not subscriptable