Pythonは、複数のjsonオブジェクトを含むjsonファイルをロードおよび解析します.

3207 ワード

jsonファイルフォーマットは以下の通りで、その中のfpath_を読み取りたいimgと対応するwidth.
{“fpath_img”: “ADEChallengeData2016/images/training/ADE_train_00000001.jpg”, “fpath_segm”: “ADEChallengeData2016/annotations/training/ADE_train_00000001.png”, “width”: 683, “height”: 512} {“fpath_img”: “ADEChallengeData2016/images/training/ADE_train_00000002.jpg”, “fpath_segm”: “ADEChallengeData2016/annotations/training/ADE_train_00000002.png”, “width”: 711, “height”: 512}
ネットで検索し始めたばかりのjson.loadは読み取りますが、このファイルには複数のjsonオブジェクトが存在するため、失敗しました.その後jsonlinesライブラリを見つけ、jsonlinesを利用しました.Reader()各jsonオブジェクトを1つずつ読み込む注意:操作前にデータフォーマットが要求に合致しているかどうかを確認します(http://jsonlines.org/)をクリックし、次のコードを実行します.
import jsonlines

json_filename = '/home/jessicachan/Documents/dataprocess/training.odgt'  #   json       
txt_filename = '/home/jessicachan/Documents/dataprocess/json2txt.txt'  #     txt     
file = open(txt_filename, 'w')
with open(json_filename) as f:
    for pop_dict in jsonlines.Reader(f):
        image_path = pop_dict['fpath_img']
        image_width = pop_dict['width']
        temp = str(image_path) + ' ' + str(image_width)
        file.write(temp + '
'
) file.close()