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

Pandas处理SKU列JSON时报JSONDecodeError: Expecting value错如何解决?

问题原因

抛出JSONDecodeError是因为SKU列存在三类无法直接被json.loads解析的值:

  • 第一行的字符串'NaN',不属于JSON合法格式
  • 第三行的空字符串'',没有有效JSON内容
  • 第二行的JSON串中引号是HTML转义格式",不是标准JSON要求的双引号
解决代码

先导入依赖库:

import pandas as pd
import json
import html

自定义解析函数处理所有异常场景:

def parse_sku(sku_str):
    # 处理空值、NaN字符串场景
    if pd.isna(sku_str) or sku_str.strip() in ('', 'NaN'):
        return []
    # 先反转义HTML实体,把"转换为标准双引号
    unescaped_str = html.unescape(sku_str)
    try:
        json_arr = json.loads(unescaped_str)
        return [item['Result'] for item in json_arr]
    except:
        # 所有解析失败的场景统一返回空列表
        return []

执行处理和行拆分:

df['SKU'] = df['SKU'].apply(parse_sku)
result = df.explode('SKU', ignore_index=True)[['ID', 'SKU', 'NOTES']]
# 把拆分后的空值替换为空字符串,匹配预期输出格式
result['SKU'] = result['SKU'].fillna('')
输出验证

最终得到的result和预期结果完全一致:

ID    SKU NOTES
0   1          abj
1   2  00018   abj
2   2  00065   abj
3   3          abj

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 02:09:02