在Python Splunk SDK中,ResultsReader 对象提供了一个可迭代对象,该对象在访问时返回一个 OrderedDict。我想将该 OrderedDict 中包含的值存储到一个集合中,以便对期望值列表执行集合减法。我很难找到一种方法来访问 OrderedDict 中的值,这种方式允许我将它们存储到一个集合中。
代码示例:
kwargs_search = {"exec_mode": "normal"}
searchquery = "search index=* earliest=-1d| stats values(host)"
job = service.jobs.create(searchquery, **kwargs_search)
for result in results.ResultsReader(job.results()):
print result
回报:
OrderedDict([('values(host)', ['host1', 'host2', ... 'hostN'])])
这些'hostN'
值是我想存储在集合中的值。
我试过了:
actual_hosts = set()
for result in results.ResultsReader(job.results()):
actual_hosts.add(result)
返回:
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
TypeError: unhashable type: 'OrderedDict'
完成我在这里尝试的最佳方法是什么?接受任何想法。