2016-11-19 73 views
0

我正在使用python腳本來執行一個應該返回0..n結果的cypher語句。我使用foreach循環來獲取所有值:Python&Neo4j:檢查空語句結果

for column1 in results['col1']: 
    # do some stuff 

如果Statementresult爲空,則循環將不會執行 - 當然,我想在之前檢查Statementresult。如果沒有結果,Python腳本應該做一些不同的事情,例如, G。打印消息。

我試圖比較statementresult與無(但它的一個對象,即使它是空的),或使用第一個索引。我在文檔和在線尋找解決方案,但找不到任何東西。我如何檢查它是否爲空?是否有可能獲得e。 G。第三個結果是否存在?

謝謝! Stefan

回答

1

我找到了一種使用類StatementResult的內部方法peek()的方法。如果您調用此方法,則在結果對象中沒有記錄時會引發錯誤。我將這些代碼封裝在一個可以用來傳遞Result對象的函數中。

def isResultRecord(results): 
    try: 
     results.peek() 
    except ResultError: 
     return False 
    else: 
     return True 
+0

謝謝,這是行之有效的!無需再使用布爾標誌! – Stefan

+1

在Bolt API的最新版本中,他們改變了這一點,不再引發ResultError異常,但在調用results.peek()時返回None。 – gonzaedu61