You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何规范化或展开JSON文件中的features字段?

嵌套JSON列展开解决方案

你的问题核心是DataFrame中features列存储了嵌套的JSON对象,直接使用顶层的json_normalize无法解析嵌套结构,以下是两种快速解决方法:

方法一:针对已加载的DataFrame处理嵌套列

先读取JSON到DataFrame,再单独对features列执行标准化,最后合并结果:

import pandas as pd

# 读取JSON文件
data = pd.read_json('C:\\Users\\ryans\\Desktop\\test.json')

# 展开features列的嵌套结构
features_expanded = pd.json_normalize(data['features'])

# 合并原DataFrame的其他列与展开后的数据
final_df = pd.concat([data.drop('features', axis=1), features_expanded], axis=1)

# 查看结果
print(final_df.head())

方法二:从原始JSON直接解析嵌套结构

跳过中间DataFrame的步骤,直接加载原始JSON后提取嵌套的features数据:

import pandas as pd
import json

# 加载原始JSON数据
with open('C:\\Users\\ryans\\Desktop\\test.json') as data_file:
    raw_data = json.load(data_file)

# 提取每个元素的features字段并标准化
features_df = pd.json_normalize([item['features'] for item in raw_data])

# 保留原有的type列(可选)
type_column = pd.Series([item['type'] for item in raw_data], name='type')
final_df = pd.concat([type_column, features_df], axis=1)

# 查看结果
print(final_df.head())

补充说明

  • 如果properties字段下还有更深层级的嵌套,json_normalize会自动将其展开为properties.GEO_ID格式的列名;若想移除前缀,可添加record_prefix参数,例如:pd.json_normalize(data['features'], record_prefix='props_')。
  • 两种方法的核心都是针对嵌套的JSON对象单独执行标准化,而不是对整个DataFrame操作。

内容的提问来源于stack exchange,提问作者ASH

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 03:22:44