【问题标题】:How do I use a python variable value to name a new node created in neo4j如何使用 python 变量值来命名在 neo4j 中创建的新节点
【发布时间】:2020-12-01 00:16:54
【问题描述】:

我有以下代码行

tx.run(CREATE n)使用neo4j到python的bolt库。

我将收到一个存储在变量中的用户输入,我希望据此命名节点。我应该如何处理这个?谢谢

另一个例子可能是这样。我收到了一个 CQL 语法错误

    if(tx.run("MATCH(n:Player{name: playername_})" "RETURN n")):
        tx.run("CREATE (playername_:Player)")
        tx.run("MATCH(username_:User)(playername_:Player)" "CREATE (playername_)-[r:IN_TEAM]->(username_)")
    else:
        tx.run("MATCH(username_:User)(playername_:Player)" "CREATE (playername_)-[r:IN_TEAM]->(username_)")

tx.run("CREATE (playername_:Player)") 行抛出以下错误

neo4j.exceptions.CypherSyntaxError: {code: Neo.ClientError.Statement.SyntaxError} {message: Variable `playername_` not defined (line 1, column 22 (offset: 21)) "MATCH(n:Player{name: playername_})RETURN n"

【问题讨论】:

    标签: python neo4j cypher bolt


    【解决方案1】:

    我相信这可以帮助你:

    playername = 'Joe'
    username = 'Martin'
    
    tx.run("CREATE (n:Player) SET n.playername = $playernamePar", playernamePar=playername)
    tx.run("CREATE (n:User) SET n.username = $usernamePar", usernamePar=username)
    tx.run("MATCH (p:Player),(u:User) 
            WHERE p.playername = $playernamePar 
            AND u.username = $usernamePar 
            CREATE (p)-[:inTeam]->(u)",
            playernamePar=playername, usernamePar=username)
    

    【讨论】:

    • 非常感谢!现在可以了。我在 neo4j 上创建任何输出/节点时遇到问题,关于我的连接如何出错有什么建议吗?
    • 不,我没有,最好为此创建一个新问题。现在你可以接受我的回答了:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-26
    • 1970-01-01
    • 1970-01-01
    • 2014-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多