如何将包含image_id与caption的文本转换为指定结构的JSON文件
实现转换的两种方案
方案一:Python脚本实现(推荐,适合大量数据场景)
首先注意:JSON规范不允许数字类型存在前导零,如果你需要保留0873里的前导0,需要把image_id设为字符串类型,脚本里提供了两种可选写法。
- 先把你的源内容保存为纯文本文件,命名为
source.txt - 运行以下Python代码即可生成目标JSON文件:
import json result = [] with open("source.txt", "r", encoding="utf-8") as f: for line in f: line = line.strip() if not line: continue # 按分隔符拆分,先拆分出image_id和后面的caption部分 parts = line.split("caption", 1) image_id_str = parts[0].replace("image_id", "").strip() caption = parts[1].strip() # 可选1:image_id为数字类型,自动去掉前导零 # image_id = int(image_id_str) # 可选2:image_id为字符串类型,保留前导零 image_id = image_id_str result.append({"image_id": image_id, "caption": caption}) # 写入到结果文件 with open("output.json", "w", encoding="utf-8") as f: json.dump(result, f, ensure_ascii=False, indent=2)
运行后生成的output.json就是你需要的文件。
方案二:文本编辑器批量替换(适合小数据量快速处理)
如果你只有少量数据,可以用支持正则查找替换的编辑器(比如VS Code、Sublime Text)操作:
- 把源内容粘贴到编辑器里,开启正则查找替换模式
- 查找规则填:
image_id\s+(\d+)\s+caption\s+(.*) - 替换规则填:
{"image_id": "$1", "caption": "$2"}, - 全部替换后,手动在最前面加
[,最后面去掉多余的逗号再加]即可完成。
注意:这个方法生成的image_id默认是字符串类型,如果你需要数字类型,把替换规则里的
"$1"改成$1即可,同时要手动去掉前导零避免JSON格式报错。
内容的提问来源于stack exchange,提问作者Lei
相关产品推荐
相关产品推荐

