在Kaggle Kernel中使用load_dataset加载JSON文件失败,本地及Colab正常
问题
在Kaggle Kernel中执行以下代码加载JSON文件:
data = load_dataset("json", data_files="/kaggle/input/dataset/gold_summaries_test.json")
触发错误:
AttributeError: 'list' object has no attribute 'keys'
该问题仅出现在Kaggle环境,Google Colab或本地Python控制台加载同一文件无异常。JSON文件为数组结构(整体由方括号包裹,内部是多个键值对形式的对象)。
解决方案
1. 升级Huggingface Datasets库
Kaggle默认的datasets版本可能存在JSON数组解析的兼容性问题,升级到最新版本即可修复:
!pip install --upgrade datasets
执行升级后重新运行加载代码。
2. 手动读取JSON并创建Dataset
若不想升级依赖,可绕开load_dataset的自动解析逻辑,手动读取文件后转换为Dataset:
import json from datasets import Dataset # 读取JSON文件 with open("/kaggle/input/dataset/gold_summaries_test.json", "r", encoding="utf-8") as f: raw_data = json.load(f) # 从列表创建Dataset data = Dataset.from_list(raw_data)
3. 验证文件路径有效性
确保Kaggle环境中文件路径正确且可访问,执行以下代码检查:
import os print(os.path.exists("/kaggle/input/dataset/gold_summaries_test.json"))
输出True则路径正常,否则修正路径。
内容的提问来源于stack exchange,提问作者Jishnu
相关产品推荐
相关产品推荐

