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

使用pd.read_json加载亚马逊评论JSON至pandas DataFrame遇解码错误

解决pd.read_json()加载亚马逊评论JSON时的引号解码错误

嘿,这个问题我之前帮不少开发者排查过!你碰到的Unmatched ''"' when decoding 'string'错误,主要是两个原因叠加导致的:一是亚马逊评论的JSON文件几乎都是JSON Lines格式(每行一条独立的JSON对象,不是用[]包裹的标准JSON数组),二是部分行里的引号可能没正确转义。

下面给你两个实用的解决方案:

方案1:直接用pandas的lines参数(优先尝试)

亚马逊评论数据集默认是每行一个JSON对象,而pd.read_json()默认会按标准JSON数组解析,所以加上lines=True就能让pandas正确识别这种格式,同时指定编码避免乱码问题:

import pandas as pd

# 替换成你的文件路径
df = pd.read_json('amazon_reviews.json', lines=True, encoding='utf-8')

如果还是报引号错误,可能是个别行的转义不规范,试试方案2。

方案2:逐行解析并跳过错误行

这个方法能帮你定位到具体出错的行,避免因为个别坏数据导致整个文件加载失败:

import json
import pandas as pd

review_data = []
with open('amazon_reviews.json', 'r', encoding='utf-8') as f:
    for line_number, line in enumerate(f, start=1):
        try:
            # 解析每行的JSON对象
            review_obj = json.loads(line.strip())
            review_data.append(review_obj)
        except json.JSONDecodeError as err:
            # 打印出错行号和错误信息,方便后续排查修正
            print(f"第{line_number}行解析失败: {err}")
            continue

# 把解析成功的数据转成DataFrame
df = pd.DataFrame(review_data)

补充说明

你提供的示例数据里,reviewerName字段的\"Acknud\"是正确的转义格式,但如果文件里存在未转义的双引号(比如直接写"William B. Bebout "Acknud""),就会触发解码错误。逐行解析的方式能帮你快速定位这些问题行,你可以选择跳过或者手动修正它们。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:28:14