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

如何在Python/PySpark中移除JSON字典的指定外层节点?

Python 实现方案

原始字典的顶层仅包含"ses_group"键,直接通过键访问即可提取目标内容。如果需要避免键不存在时的KeyError,可以用get()方法做安全处理:

# 原始字典
original_dict = {
    "ses_group": {
        "grp_a": "ratncib",
        "grp_b": "batric",
        "grp_c": {
            "grp_ca": "x",
            "grp_cb": "y"
        },
        "grp_d": {}
    }
}

# 直接提取
result_dict = original_dict["ses_group"]

# 安全写法(键不存在时返回空字典)
# result_dict = original_dict.get("ses_group", {})

print(result_dict)

运行后输出的结果就是你期望的字典结构。

PySpark 实现方案

如果数据以嵌套字典形式存储在PySpark DataFrame的列中,可通过以下方式提取:

首先构造示例DataFrame:

from pyspark.sql import SparkSession
from pyspark.sql.functions import col

spark = SparkSession.builder.appName("ExtractNestedDict").getOrCreate()

# 模拟数据
data = [({"ses_group": {"grp_a": "ratncib", "grp_b": "batric", "grp_c": {"grp_ca": "x", "grp_cb": "y"}, "grp_d": {}}},)]
df = spark.createDataFrame(data, ["nested_data"])

方法1:直接访问嵌套字段

通过.操作符直接提取ses_group对应的值:

# 提取并生成新列
result_df = df.select(col("nested_data.ses_group").alias("extracted_data"))

# 将结果转为Python字典(如果需要)
result_dict = result_df.collect()[0]["extracted_data"]
print(result_dict)

方法2:使用getItem()方法

也可以用getItem()方法指定键来提取:

result_df = df.select(col("nested_data").getItem("ses_group").alias("extracted_data"))

两种方法都能得到目标字典结构,后续可根据需求对DataFrame做进一步处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 05:33:27