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/)をクリックし、次のコードを実行します.
{“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()