其实最重要的还是要知道自己的json文件到底是一个什么格式的

就拿我这个举例子:
在这里插入图片描述
所以从数组的角度来说,他应该是
json_data[triplet][0][subject]
json_data[triplet][0][relation]
json_data[triplet][0][obejct]
json_data[triplet][0][caption]

比如这个
在这里插入图片描述

我需要 annotations中的caption,那我就可以这样指定
json_data[annotations][1][caption]

而从json文件到csv文件,我就直接选择用暴力方式读取,虽然是暴力方式,但其实耗时并不长

if __name__ == '__main__':
    json_file="triplets.json"
    with open(json_file,'r') as json_obj:
        json_data=json.load(json_obj)
    f = open('json2csvNew.csv', 'w', encoding='utf-8',newline='')
    csv_writer=csv.writer(f);
    csv_writer.writerow(["subject","relation","obejct","caption"])
    print(type(json_data))
    print(json_data.keys())
    print(type(json_data['triplet'][0]))
    #这里循环写入好了
    for i in range(298570):
        csv_writer.writerow([json_data['triplet'][i]['subject'],json_data['triplet'][i]['relation'],json_data['triplet'][i]['object'],json_data['triplet'][i]['caption']])
    f.close()
    print("ok")

生成结果如下:
在这里插入图片描述

GitHub 加速计划 / js / json
41.72 K
6.61 K
下载
适用于现代 C++ 的 JSON。
最近提交(Master分支:1 个月前 )
960b763e 4 个月前
8c391e04 6 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐