我正在使用
处理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']
但r
和x
每个只有一行。如果我能直接得到结果,我会更开心:
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']
答案 0 :(得分:2)
为什么不:
try:
node_id = result[0][0]['node_id']
except IndexError:
# result is empty
pass