2016-06-09 70 views
0

我運行下面的代碼(稱爲caa_fiel_write.py)輸出我Splunk的結果到JSON文件:Splunk的定製警報Python的問題

import sys, json, urllib2 
def write_file(settings): 
     f = open('myfile','w') 
     f.write("%s"%json.dumps(settings)) 
     f.close() 
if __name__ == "__main__": 
     caa_config = json.loads(sys.stdin.read()) 
     write_file(caa_config) 

我收到以下錯誤:


文件「/opt/sdg/splunk/etc/apps/SDG/bin/caa_file_write.py」,第7行,在 caa_config = json.loads(sys.stdin.read())

文件「/ opt/sdg/splunk/lib/python2.7/json/__ init__.py「,第339行,在負載 返回_default_decoder.decode(S)

文件 「/opt/sdg/splunk/lib/python2.7/json/decoder.py」,線路364,在解碼 OBJ,端= self.raw_decode( s,idx = _w(s,0).end())

raw_decode中的文件「/opt/sdg/splunk/lib/python2.7/json/decoder.py」,第382行 raise ValueError 「沒有JSON對象可以解碼」)

ValueError異常:無JSON對象可以解碼


339線從__init__.py是:

return _default_decoder.decode(s) 

線364和decoder.py 382:

obj, end = self.raw_decode(s, idx=_w(s, 0).end()) 
... 
     raise ValueError("No JSON object could be decoded") 

我不知道爲什麼它被調用解碼器擺在首位,它應該被編碼。 __init__.py和decoder.py都是標準的Splunk python文件,可通過任何發行版獲得。

什麼是這些錯誤,我該如何解決它們?

回答

1

json.loads(sys.stdin.read())正在解碼標準輸入。您的輸入無效JSON。

+0

所以輸入必須是有效的JSON? – Deesbek

+0

@Deesbek是的,你期望什麼? –

+0

大聲笑,我期待一個轉換,標準的鍵/值對JSON,但現在我實際上重新閱讀書中的章,它的行爲如預期。 – Deesbek