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

如何替换JSON数组/Pandas DataFrame中的空方括号

移除/替换 JSON 或 Pandas DataFrame 中的空方括号

一、处理 JSON 数据

直接转字符串替换会破坏原有结构,正确做法是递归遍历 JSON 的嵌套层级,针对性处理空列表:

示例代码(Python)

def process_empty_lists(obj, action="remove", replace_val=None):
    if isinstance(obj, dict):
        if action == "remove":
            # 删除值为空列表的键
            return {k: process_empty_lists(v, action, replace_val) for k, v in obj.items() if not (isinstance(v, list) and len(v) == 0)}
        elif action == "replace":
            # 将空列表替换为指定值(比如None)
            return {k: (replace_val if isinstance(v, list) and len(v)==0 else process_empty_lists(v, action, replace_val)) for k, v in obj.items()}
    elif isinstance(obj, list):
        # 遍历列表元素,递归处理,同时过滤空列表(按需选择)
        return [process_empty_lists(item, action, replace_val) for item in obj if not (isinstance(item, list) and len(item) == 0)]
    else:
        return obj

# 测试用例
sample_json = {
    "name": "ayan",
    "tags": [],
    "details": {
        "hobbies": [],
        "age": 25
    },
    "records": [1, [], 3, {"key": []}]
}

# 删除空列表对应的键
processed_json_remove = process_empty_lists(sample_json, action="remove")
# 把空列表替换为None
processed_json_replace = process_empty_lists(sample_json, action="replace", replace_val=None)

这段代码会完整保留原 JSON 的结构类型,仅对空列表做删除或替换操作。

二、处理 Pandas DataFrame

分两种场景针对性处理:

1. 单元格值为空列表

如果 DataFrame 中存在单元格直接是[]的情况,可通过applymap或replace批量处理:

替换为空值(NaN)

import pandas as pd

df = pd.DataFrame({
    "col1": [1, [], 3],
    "col2": [[], "test", []],
    "col3": [{"a": []}, 5, None]
})

# 将所有空列表替换为Pandas标准空值
df = df.applymap(lambda x: pd.NA if isinstance(x, list) and len(x) == 0 else x)

递归处理嵌套结构(单元格含字典/列表)

如果单元格内是嵌套的 JSON 结构,可结合上面的递归函数:

df["col3"] = df["col3"].apply(lambda x: process_empty_lists(x) if pd.notna(x) else x)

2. 整列均为空列表

如果某一列所有元素都是空列表,可直接删除该列:

# 筛选出所有值都是空列表的列并删除
df = df.drop(columns=[col for col in df.columns if df[col].apply(lambda x: isinstance(x, list) and len(x)==0).all()])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 06:10:30