从py2neo事务process()调用处理RecordListList

时间:2015-06-24 16:09:02

标签: neo4j py2neo

我正在使用

处理Cypher语句
result = my_cypher.my_transaction.process()

我的问题是我不知道如何优雅地得到结果。我偶然发现process()返回一个RecordListList但我不知道如何处理它除了迭代它。这让我很烦恼,因为在我的代码的这一部分中,我一次只处理一个语句,并且不需要迭代任何事情。 (不过,我仍在一次交易中。)

这就是为什么我现在正在做的事情,它正在燃烧我的灵魂:

result = cypher.tx.process()
for r in result:
    for x in r:
        node_id = x['node_id']

rx每个只有一行。如果我能直接得到结果,我会更开心:

node_id = result.one().one()['node_id']

编辑1

我使用ipython来显示process()上可用的方法列表。其中一个是pop()。现在我有这种可憎的行为:

 result = cypher.process()
 one_row = result.pop()
 tmp = one_row[0]['node_id']

更好,但仍然很难。

编辑2

显然,RecordList中的一块魔法会从所述记录集中拉出第一行。它是一个名为one的属性。非常奇怪,这不是一种方法。

 result = cypher.process()
 one_row = result.pop()
 node_id = one_row.one['node_id']

1 个答案:

答案 0 :(得分:2)

为什么不:

try:
    node_id = result[0][0]['node_id']
except IndexError:
    # result is empty
    pass