python과 json - DBChoi85/Hanja_DKU GitHub Wiki
Json은 Mask R-CNN 을 작업하다보면 거의 필수적으로 볼수있는 형식이다. Json은 프로그래밍 언어가 아닌 단순히 데이터를 표시하는 표현 방법으로서 Mask R-CNN의 Train_data중 객체 영역을 표시해 놓는데 유용하다. 따라서 python과 Json 이 두형식을 자유롭게 오갈수 있어야 Mask R-CNN의 Train_data를 자유롭게 다룰수 있다는 것이다.
주 언어는 python 이므로 python내에서 Json을 다루는 점을 정리해 보도록 하겠다.
JSON형식으로 저장하기
import json
customer = { 'id': 152352, 'name': '강진수', 'history': [ {'date': '2015-03-11', 'item': 'iPhone'}, {'date': '2016-02-23', 'item': 'Monitor'}, ] }
위와 같이 JSON 파일로 저장시킬 데이터형식을 정의해 놓는다
make_file = open('test.json', 'w', encoding = "utf-8") json.dump(customer,make_file,ensure_ascii=False,indent="\t")
저장할 json파일을 정한다(W=쓰기용) json.dump(저장할 내용,저장될 json파일,ascii사용여부, indent="\t"사용시 여러줄로 표시) dump함수를 이용하여 내용을 json파일로 저장시킨다. ((주의 - dump는 오픈한 파일에 내용이 쓰여지고, dumps는 파이썬 내에서 string형식으로 반환해줌)
JSON 불러오기
import json
with open('test.json') as data_file:
data = json.load(data_file)
print(data)
위와 같이 실행시 test.json 파일을 불러와 python내에서 다룰수 있다. with open('test.json') as data_file 은 data_file = open('test.json')과 같은 의미로 해석 가능하다.
참고 { "maps":[ {"id":"blabla","iscategorical":"0"}, {"id":"blabla","iscategorical":"0"} ], . . . } test.json 파일이 위와 같은 형식일 경우 print(data["maps"][0]["id"]) # 값은 blabal