Splunk 自定义警报 Python 问题

Splunk custom alert Python issue

我正在运行以下代码(称为caa_fiel_write.py)将我的splunk结果输出到JSON文件:

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 行,加载 return _default_decoder.decode(s)

文件“/opt/sdg/splunk/lib/python2.7/json/decoder.py”,第 364 行,解码中 obj, end = self.raw_decode(s, idx=_w(s, 0).end())

文件“/opt/sdg/splunk/lib/python2.7/json/decoder.py”,第 382 行,在 raw_decode 提高 ValueError("No JSON object could be decoded")

ValueError:无法解码 JSON 对象


来自 __init__.py 的第 339 行是:

   return _default_decoder.decode(s)

decoder.py 中的第 364 行和第 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 文件,可通过任何发行版获得。

这些错误是什么以及如何修复它们?

json.loads(sys.stdin.read())是解码标准输入。您的输入无效 JSON.