【问题标题】:How to store the returned record of the results of a Neo4J query in Python?如何在 Python 中存储 Neo4J 查询结果的返回记录?
【发布时间】:2021-02-10 19:13:13
【问题描述】:

我已使用 Python 连接到 Neo4J 图形数据库,并希望将查询的返回结果存储在对象名称下(例如“df”),但由于某种原因,当我简单地打印输出时,Python 会打印每个匹配项对于给定的查询,但如果我尝试将其存储在一个对象下并调用该对象名称,它只会返回一个匹配项。例如,如果我运行以下命令(由于机密性,我必须匿名某些字符串和名称):

query_object = "x"
query = """MATCH (n {name:""" + "'" + query_object + "'" """}) RETURN n"""
edge_query = "MATCH (n {name:""" + "'" + query_object + "'" """})<-[r]-(y) RETURN y.name, n.value"""
with graphDB_Driver.session() as graphDB_Session:
        graphDB_Session.run(query)
        nodes = graphDB_Session.run(edge_query)
        for node in nodes:
            print(node)

我明白了:

<Record y.name='a' n.value=None>
<Record y.name='b' n.value=None>
<Record y.name='c' n.value=None>
<Record y.name='d' n.value=None>

但是,如果我运行:

with graphDB_Driver.session() as graphDB_Session:
        graphDB_Session.run(query)
        nodes = graphDB_Session.run(edge_query)
        for x in nodes:
            df = node
df

在这种情况下调用 df 只会返回:

<Record y.name='d' n.value=None>

有人能解释一下为什么会这样吗?如果是这样,我如何将整个返回的结果集存储在一个对象下,因为这对我目前正在处理的任务至关重要?

【问题讨论】:

  • 我刚刚意识到运行图形数据库的第二个代码块状态为“for x in nodes”。这是一个错误,假设它声明“for node in nodes”。
  • 我不是 Pythonista,但如果 df not 缩进 within for 循环,我假设 df 会指它被分配到的最后一个值。 df 应该是一个数组,df = node 应该替换为 df.append(node)
  • 感谢您的评论;我遇到的问题是“节点”是一个“记录”对象,当涉及到可以在其上执行的功能时,它似乎并不通用。所以我运行了 df.append(node) 并得到了错误:'Record' object has no attribute 'append'。
  • 我没关注,你能分享声明df的代码吗?我认为像这样的东西:``` df = [] for node in nodes: df.append(node) df ``` 会起作用(或至少触发与您描述的不同的错误)。不是吗?
  • 抱歉,我之前忘记将 df 称为空列表。它奏效了;非常感谢!!

标签: python database graph neo4j record


【解决方案1】:

类似:

with graphDB_Driver.session() as graphDB_Session:
        graphDB_Session.run(query)
        nodes = graphDB_Session.run(edge_query)
        df = []
        for x in nodes:
            df.append(node)
df

应该可以。

【讨论】:

    猜你喜欢
    • 2016-04-15
    • 1970-01-01
    • 1970-01-01
    • 2021-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-15
    相关资源
    最近更新 更多