elasticsearch - 在python函數執行過程中,如何判斷并處理其中一條語句的返回值?
問題描述
本人在使用elasticsearch自帶的python api編寫一些日志簡單處理之后寫入es的python腳本。比如def es_write(index_name,type,id,body):
from elasticsearch import Elasticsearches = Elasticsearch()es.create(index=index_name,doc_type=type,id=id,body=body)
es.create就是最基礎向es中創建內容的語句。之后就如同在elasticsearch-head或者在linux中使用curl命令對es進行操作后,會返回一個json塊。會告訴你,哪些hits被修改,或者有沒有修改成功。如果操作失敗,就會在json塊中顯示timed_out:True,failed:xxx之類的字樣這樣就不能用python自帶的拋出異常那一套來偵測。我想問下如何在函數中處理這樣的內容。如果命令返回的json塊中有失敗或者超時的字樣,就 使用logging打印錯誤日志之類的。
個人基礎確實不太好,我記得python之前有個subprocess相關的模塊,可以打開新的線程,但是百度了一下,基本都是執行linux系統命令,并處理其返回值。
問題解答
回答1:這個模塊應該也是有返回一個json處理結果的,你可以試下下面語句:
result = es.create(index=index_name,doc_type=type,id=id,body=body)print result
