es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Hola, estoy tratando de conectar dos nodos de diferentes clases y por alguna razón me está dando este error -> neo4j.exceptions.CypherSyntaxError: {código:

Esta es la función que conecta 2 nodos de diferentes clases, los nodos existen.

def Lives_inRelationship(name, num):
    session = graphdb.session()

    session.run("MATCH (" + name + ":person {name:'" + name + "'}), ("+num+":Apartment {number:'" + num + "'})"
                "MERGE (" + name + ")-[:Lives_in]->(" + num + ")")

Lives_inRelationship(“Chandler”,”19″) genera la excepción:

neo4j.exceptions.CypherSyntaxError: {code: Neo.ClientError.Statement.SyntaxError} {message: Invalid input '19': expected "(", "allShortestPaths" or "shortestPath" (line 1, column 45 (offset: 44)) 
"MATCH (Chandler:person {name:'Chandler'}), (19:Apartment {number:'19'})MERGE (Chandler)-[:Lives_in]->(19)"
                                              ^}
Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Pregunta

    ¿Qué está causando el error de sintaxis en la función Lives_inRelationship y cómo se puede corregir?

    Respuesta

    El error de sintaxis se debe a que el segundo parámetro num no está siendo formateado correctamente como una cadena al construir la consulta Cypher. Esto se debe a que name está siendo correctamente encerrado entre comillas (") pero num no. Como resultado, la consulta interpreta num como un valor entero, en lugar de una cadena literal.

    Para solucionar este problema, num debe estar correctamente encerrado entre comillas en la consulta Cypher. Una manera de hacer esto es modificar la declaración session.run para incluir una serie adicional de comillas alrededor de num usando el operador +:

    session.run("MATCH (" + name + ":person {name:'" + name + "'}), (:" + num + ":Apartment {number:'" + num + "'}) " 
                "MERGE (" + name + ")-[:Lives_in]->(" + num + ")")
    

    Esto asegurará que num esté formateado correctamente como una cadena en la consulta Cypher, y debería resolver el error de sintaxis que está causando la excepción.

Comments are closed.