将嵌套的JSON结构转换为Pandas DataFrames需要经过以下步骤:
-
读取JSON文件或字符串:使用
json.loads()
读取JSON字符串或使用json.load()
读取JSON文件。 -
扁平化JSON数据:使用
json_normalize()
函数将嵌套的JSON数据扁平化。 -
将扁平化后的JSON数据转换为DataFrames对象:使用
pandas.DataFrame()
函数将数据转换为DataFrame对象。
下面是一个实例,假设我们有一个保存有三个嵌套字典的JSON文件 data.json
,其中每个字典都包含了”姓名”、”年龄”和”联系方式”三个字段,其中”联系方式”字段又由”电话”和”邮箱”两个子字段组成。
[
{
"姓名": "张三",
"年龄": 20,
"联系方式": {
"电话": "123456789",
"邮箱": "zhangsan@qq.com"
}
},
{
"姓名": "李四",
"年龄": 30,
"联系方式": {
"电话": "987654321",
"邮箱": "lisi@qq.com"
}
},
{
"姓名": "王五",
"年龄": 25,
"联系方式": {
"电话": "567891234",
"邮箱": "wangwu@qq.com"
}
}
]
我们可以按照以下方式读取、扁平化和转换JSON数据:
import json
import pandas as pd
# 读取JSON文件为字符串
with open("data.json", "r") as f:
json_str = f.read()
# 解析JSON字符串
json_data = json.loads(json_str)
# 扁平化JSON数据
df = pd.json_normalize(json_data, "联系方式", ["姓名", "年龄"])
# 输出转换后的DataFrames对象
print(df)
运行结果如下:
电话 邮箱 姓名 年龄
0 123456789 zhangsan@qq.com 张三 20
1 987654321 lisi@qq.com 李四 30
2 567891234 wangwu@qq.com 王五 25
在这个实例中,我们首先使用 open()
函数读取JSON文件,并使用 json.loads()
函数将JSON字符串解析为字典对象。接着,我们使用 json_normalize()
函数将嵌套的JSON结构扁平化,将 “姓名” 和 “年龄” 两个字段作为主体,并选择 “联系方式” 字段下的 “电话” 和 “邮箱” 两个子字段。最后,我们使用 print()
函数输出DataFrames对象。
总之,将嵌套的JSON结构转换为Pandas DataFrames需要按照上述三个步骤进行操作,扁平化后的DataFrames对象更易于数据操作和分析。