成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

elasticsearch - 在python函數(shù)執(zhí)行過(guò)程中,如何判斷并處理其中一條語(yǔ)句的返回值?

瀏覽:144日期:2022-07-30 17:50:17

問(wèn)題描述

本人在使用elasticsearch自帶的python api編寫(xiě)一些日志簡(jiǎn)單處理之后寫(xiě)入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就是最基礎(chǔ)向es中創(chuàng)建內(nèi)容的語(yǔ)句。之后就如同在elasticsearch-head或者在linux中使用curl命令對(duì)es進(jìn)行操作后,會(huì)返回一個(gè)json塊。會(huì)告訴你,哪些hits被修改,或者有沒(méi)有修改成功。如果操作失敗,就會(huì)在json塊中顯示timed_out:True,failed:xxx之類(lèi)的字樣這樣就不能用python自帶的拋出異常那一套來(lái)偵測(cè)。我想問(wèn)下如何在函數(shù)中處理這樣的內(nèi)容。如果命令返回的json塊中有失敗或者超時(shí)的字樣,就 使用logging打印錯(cuò)誤日志之類(lèi)的。

個(gè)人基礎(chǔ)確實(shí)不太好,我記得python之前有個(gè)subprocess相關(guān)的模塊,可以打開(kāi)新的線程,但是百度了一下,基本都是執(zhí)行l(wèi)inux系統(tǒng)命令,并處理其返回值。

問(wèn)題解答

回答1:

這個(gè)模塊應(yīng)該也是有返回一個(gè)json處理結(jié)果的,你可以試下下面語(yǔ)句:

result = es.create(index=index_name,doc_type=type,id=id,body=body)print result

標(biāo)簽: Python 編程