从嵌套的JSON中创建数据帧可以通过以下步骤实现:
下面是一个示例代码:
import pandas as pd
import json
# 读取JSON文件或解析JSON字符串
json_data = '''
{
"name": "John",
"age": 30,
"address": {
"street": "123 Main St",
"city": "New York",
"state": "NY"
},
"orders": [
{
"id": 1,
"product": "Apple",
"quantity": 5
},
{
"id": 2,
"product": "Banana",
"quantity": 3
}
]
}
'''
data = json.loads(json_data)
# 定义递归函数来提取嵌套JSON数据
def extract_data(json_obj, parent_key='', data_frame=None):
for key, value in json_obj.items():
if isinstance(value, dict):
new_key = f"{parent_key}.{key}" if parent_key else key
data_frame = extract_data(value, parent_key=new_key, data_frame=data_frame)
elif isinstance(value, list):
for i, item in enumerate(value):
new_key = f"{parent_key}.{key}[{i}]" if parent_key else f"{key}[{i}]"
data_frame = extract_data(item, parent_key=new_key, data_frame=data_frame)
else:
new_key = f"{parent_key}.{key}" if parent_key else key
if data_frame is None:
data_frame = pd.DataFrame(columns=[new_key])
data_frame.at[0, new_key] = value
return data_frame
# 提取数据并创建数据帧
df = extract_data(data)
# 打印数据帧
print(df)
这段代码将会输出如下的数据帧:
name age address.street address.city address.state orders[0].id orders[0].product orders[0].quantity orders[1].id orders[1].product orders[1].quantity
0 John 30 123 Main St New York NY 1 Apple 5 2 Banana 3
这个数据帧包含了从嵌套的JSON中提取的所有数据,每个键值对都被展开为数据帧的列。你可以根据需要进一步处理和分析这个数据帧。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云