Python:.splunk中的json数据

2024-09-27 23:21:45 发布

您现在位置:Python中文网/ 问答频道 /正文

以下问题: 对于我的大学项目,我上传了一个json文件到splunk,现在我想在python中将其用作dataframe对象

代码:

import urllib3
import requests
import json
import pandas as pd

urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)


server = 'localhost'
port = 8089
username = 'testuid'
password = 'testpw'
url='https://'+ server +':' + str(port)
param = {'shortname', 'permissionId'}

search='?search=search source%3D%22events.json%22%20host%3D%22DESKTOP-9QDQ0FT%22%20index%3D%22projektseminar%22%20sourcetype%3D%22_json%22%20%7Chead%2020%20%7Ctable%20shortname%20permissionId'

output_type =  '&output_mode=json'
search_url = url + '/servicesNS/nobody/search/search/jobs/export' + search + output_type

r = requests.get(search_url, auth=(username, password), verify=False)

在这一点上效果很好。 现在,我希望这个特定的“r”响应对象作为数据帧对象,包含两列“shortname”和“permissionId”。我在这方面有几个问题。 首先,我从RESTAPI获得的json包含“preview”、“offset”和“results”列。 我想要一个列为“shortname”和“permissionId”的数据框。 问题是我不能使用像json.load(r)r.json()或类似的东西,总是会出现“额外数据”错误。 所以我是splunk和python的初学者,所以也许有更好的方法。。。 另一个我还没有尝试过的想法是使用csv输出而不是json。 如果你们能提出一些解决这个问题的建议,那就太好了

thx


Tags: 数据对象importjsonurloutputsearchserver
1条回答
网友
1楼 · 发布于 2024-09-27 23:21:45

实现这一点的最佳方法是使用Python的splunkapi

您可以在这里找到SDK:https://github.com/splunk/splunk-sdk-python

import sys
import os
from time import sleep
sys.path.insert(0, os.path.join(os.path.dirname(__file__), "splunk-sdk-python-1.6.13"))

import splunklib.client as client
import splunklib.results as results

import pandas as pd

# Note my port, username, and password are specific to my instance. The default port is 8089

service = client.connect(host='localhost', port=MY_PORT,
                   username='MY_USER', password='MY_PASS')

search = """search index=_internal sourcetype="splunkd_access" |table *"""

job = service.jobs.create(search)
while True:
    while not job.is_ready():
        pass
    if job['isDone'] == '1':
        break
    sleep(2)


reader = results.ResultsReader(job.results())


df = pd.DataFrame(reader)
print(df)

相关问题 更多 >

    热门问题