将TXT转为指定结构JSON时触发TypeError错误的问题咨询
问题原因
- 你导出的JSON根结构是数组,但是后续读取代码默认JSON根是包含
annotations字段的字典,直接用datasetRES['annotations']取值就会报错,因为数组不能用字符串作为索引 - 你提取的caption末尾还带多余的换行符,需要额外去除
修复方案
修改转换代码,输出符合要求的JSON结构
修改后的代码如下:
import json # 根结构用字典,存储annotations字段对应列表 result = {"annotations": []} with open('1.txt') as f: for line in f: _, image_id, _, caption = line.split(maxsplit=3) # 去除caption末尾的换行符和多余空白 caption = caption.strip() result["annotations"].append({"image_id": int(image_id), "caption": caption}) with open('r.json', "w") as f: json.dump(result, f, ensure_ascii=False, indent=2)
修改后导出的JSON结构就和你预期的格式一致,原有读取代码不需要调整,即可正常运行。
内容的提问来源于stack exchange,提问作者USER
相关产品推荐
相关产品推荐

