这是我尝试运行的代码
def get_label(tx, name):
tx.run("Match(n) where n.name=$name"
"return labels(n)",
name=name )
return "labels(n)"
with graphdb.session() as session:
Label = session.read_transaction(get_label, "usa")
我遇到此语法错误:
neo4j.exceptions.CypherSyntaxError:{代码:Neo.客户端错误.语句.语法错误} {消息:无效的输入'a':应为“o/O”(第1行,第36列(偏移量:35))“匹配(n),其中n.name =$名称返回标签(n)”^}
1条答案
按热度按时间s4n0splo1#
首先,您的查询中在
$name
和return
之间缺少一个空格或换行符。它应该是:或者甚至更短:
第二,你返回的不是
tx.run
的结果,而是一个字符串。我对Python没有经验,但代码应该更像这样:最后,
get_label
可能是一个用词不当。一个节点定义了0到许多标签,我在这里建议的实现将返回与匹配节点一样多的标签列表。如果名称在数据集中的所有节点中是唯一的,这可能意味着一个列表。