如何直接从内存JSON文本加载HuggingFace数据集?
直接从内存加载JSON文本为HuggingFace数据集
我有一段在内存中的JSON格式文本,不想先保存成本地文件,希望直接加载为HuggingFace的Dataset。目前如果保存为文件,我可以用以下代码加载:
from datasets import load_dataset dataset = load_dataset('json', data_files='my_file.json')
当然可以直接从内存加载,这里提供两种常用实现方法:
- 方法一:解析JSON为Python对象后创建Dataset
先把内存中的JSON文本解析成Python列表(对应JSON数组结构,每个元素对应一条数据样本),再通过Dataset.from_list()直接生成数据集:
import json from datasets import Dataset # json_text为内存中的JSON格式字符串 json_text = '[{"text": "示例文本1"}, {"text": "示例文本2"}]' data_samples = json.loads(json_text) dataset = Dataset.from_list(data_samples)
- 方法二:用类文件对象模拟本地文件
借助io.StringIO将内存中的JSON文本包装成类文件对象,直接传入load_dataset的data_files参数:
from io import StringIO from datasets import load_dataset # json_text为内存中的JSON格式字符串 json_text = '[{"text": "示例文本1"}, {"text": "示例文本2"}]' dataset = load_dataset('json', data_files={'train': StringIO(json_text)})
内容的提问来源于stack exchange,提问作者Noam Gershi
相关产品推荐
相关产品推荐

