Neo.ClientError.Statement.ParameterMissing}{message:Expected参数:username}与Python

2024-04-23 09:02:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下函数和以下调用(前面有连接设置)

from  neo4j import GraphDatabase
from pypher import Pypher
# from WebScraper import *
py = Pypher()
# server connection link
uri = "bolt://localhost:7687"
driver = GraphDatabase.driver(uri, auth=("neo4j", "cs411fpl"))
session = driver.session()
username = 'a'
varray = []
# adds a user node
def add_user(username_):
    q1 = "CREATE (u:User) SET u.name= $username_"
    nodes = session.run(q1)

add_user(username)

这会导致错误:

File "UserHandler.py", line 37, in <module>
    add_user(username)
  
File "UserHandler.py", line 14, in add_user
    nodes = session.run(q1)
  
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/neo4j/work/simple.py", line 217, in run
    self._autoResult._run(query, parameters, self._config.database, self._config.default_access_mode, self._bookmarks, **kwparameters)
  
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/neo4j/work/result.py", line 101, in _run
    self._attach()
  
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/neo4j/work/result.py", line 202, in _attach
    self._connection.fetch_message()
  
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/neo4j/io/_bolt4.py", line 363, in fetch_message
    response.on_failure(summary_metadata or {})
  
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/neo4j/io/_common.py", line 179, in on_failure
    raise Neo4jError.hydrate(**metadata)

neo4j.exceptions.ClientError: {code: Neo.ClientError.Statement.ParameterMissing} {message: Expected parameter(s): username_}

任何建议都很好。谢谢


Tags: runinpyselfliblinelibraryusername
1条回答
网友
1楼 · 发布于 2024-04-23 09:02:59

您缺少Cypher和Python之间的连接(第二个参数是run)。两个地方的username_拼写相同是不够的

def add_user(username_):
    q1 = "CREATE (u:User) SET u.name= $username_"
    nodes = session.run(q1, username_=username_)

我认为下面的方法也可以,注意run的第二个参数必须描述Cypher和Python之间的耦合:

def add_user(username_):
    q1 = "CREATE (u:User) SET u.name= $login"
    nodes = session.run(q1, login=username_)

您可以在此处找到更多信息: https://neo4j.com/developer/python/

相关问题 更多 >