如何规范化熊猫中的json文件?

Posted

技术标签:

【中文标题】如何规范化熊猫中的json文件?【英文标题】:How to normalize a json file in pandas? 【发布时间】:2021-07-21 16:20:27 【问题描述】:

我想规范化一个看起来像这样的 json 文件:

[ "ID":1, "Rev":2, "Fields":"System.Id":1, "System.State":"CLosed", "System.Title":"ABC", "Value":"Functional", "Comments":[] ]

我尝试通过以下方式使用 json_normalize 函数:

df = pd.json_normalize(data, 'Fields', ['Id', 'Rev', 'Comments'], record_prefix = "Fields_")

但是上面的代码创建了几行属于同一个 ID 号。我希望代码创建由“字段”描述的新列,与 json 文件中的其他列处于同一级别。每行应该有一个 ID 号和该 ID 号的其他详细信息。我该如何实现?

编辑:我需要输出如下所示:

所需输出:

相反,我得到的是:

【问题讨论】:

你能分享一下你的预期输出是什么样的吗? 嗨,我需要每个 ID 号有一行这样的输出:>ID REV System.ID System.State System.Title Value Comments >1 2 1 Closed ABC Functional 修改了原问题,请查收。 好的,我刚刚发布了答案.. 【参考方案1】:

pd.json_normalize() 将返回具有一个 id 的行以及其他详细信息,然后您可以在所有列中使用 replace "Fields."""

data= [ "ID":1, "Rev":2, "Fields":"System.Id":1, "System.State":"CLosed", "System.Title":"ABC", "Value":"Functional", "Comments":[] ]
df = pd.json_normalize(data)
df.columns = [c.replace("Fields.", "") for c in df.columns]

输出

【讨论】:

以上是关于如何规范化熊猫中的json文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何在熊猫中读取和规范化以下json?

如何将字典附加到熊猫数据框?

如何在熊猫数据框中读取嵌套的 json 文件?

来自熊猫数据框的 json 文件中的正斜杠

如何将夹具中的不同 JSON 对象映射到 cypress 中的特定规范测试文件

将json文件读取为熊猫数据框?