【问题标题】:Expand JSON from DataFrame column从 DataFrame 列展开 JSON
【发布时间】:2026-01-27 18:10:02
【问题描述】:

我想扩展 DataFrame 中的 JSON 数据,使每个 KV 对具有单独的列。

                                                events
0     {u'category': u'8052', u'username': u'NULL', u...
1     {u'category': u'8052', u'username': u'NULL', u...
2     {u'category': u'8052', u'username': u'NULL', u...
3     {u'category': u'8052', u'username': u'NULL', u...

我用map 尝试了很多东西,但都没有成功。主要是因为函数需要字符串。

在相关说明中,我从 Python (2.7) 请求的单个列中获取 JSON。回复有 JSON 数据,我读了。

从函数:

results = requests.get(api_url + "/" + search_id + '/results',
                                  headers=aheaders, verify=False, auth=bauth).text.decode('utf-8')
return json.loads(results)

从实际调用来看:

results = pd.DataFrame.from_dict(
            ariel_query(server_ip, usern, passw, token)
)

由于扩展列似乎相当复杂,因此可能有更简单的方法。

【问题讨论】:

标签: json python-2.7 pandas request


【解决方案1】:

我使用了json_normalize 和一个名为record_path 的参数。正如您在清单中看到的,该列称为事件,它是补充值。然后json_normalize 将返回带有列的DataFrame

results = json_normalize(
        requests.get(qradar_api_url + "/" + search_id + '/results',
                                  headers=aheaders, verify=False, auth=bauth).json(), record_path=keyword)

这适用于 Python 2.7(3.x 的请求略有不同)

【讨论】: