본문 바로가기
Programing

[Python] 파이썬 json파일 병합하기, json file merge

by 머니 사이언티스트 2023. 7. 28.
반응형

Python 파이썬 여러 개의 json파일 병합하기, json file merge

파이썬 코드로 폴더 안의 json 파일을 한 번에 불러와 여러 개의 json파일 병합(merge)하는 방법을 알려드리겠습니다.

특정 확장자별 파일 불러오기, 디렉터리 내부 파일 읽기 뿐만 아니라 특정 확장자 중 json 파일 병합(json merge)에 대한 방법이기 때문에 실무에서 데이터 관련 업무를 하시면 큰 도움이 되시리라 생각됩니다.


 

2023.05.11 - [Programing] - [Python] 폴더 안에 파일 한 번에 불러오기

 

[Python] 폴더 안에 파일 한번에 불러오기

파이썬 폴더 안에 파일 한번에 읽기 파이썬 코드로 폴더 안에 파일을 한번에 읽는 방법을 알려드리겠습니다. 한번에 확장자별 파일 불러오기, 하위 디렉토리 파일 읽기 뿐만 아니라 모든 하위

godessa.tistory.com

 

2023.05.09 - [Programing] - [Python] 파이썬 파일 이동 파일 옮기기 - shutil.move 구현하기

 

[Python] 파이썬 파일 이동 파일 옮기기 - shutil.move 구현하기

Python 파이썬 파일 옮기기 - shutil.move 파일 이동하기 오늘의 포스팅 파이썬을 파일옮기는 방법를 안내해 드리겠습니니다. 원하는 파일을 원하는 위치에 이동하며 옮길 수 있도록 해보겠습니다.

godessa.tistory.com

 

2023.05.08 - [Programing] - [Python] 파이썬 csv파일 행분리 및 엑셀파일 행분리 후 저장

 

[Python] 파이썬 csv파일 행분리 및 엑셀파일 행분리 후 저장

2023.06.27 - [Programing] - ADsP(데이터분석 준전문가) 자격증 취득 후기, 공부법, 교재, 수강료 등 총정리 ADsP(데이터분석 준전문가) 자격증 취득 후기, 공부법, 교재, 수강료 등 총정리 ADsP(데이터분석

godessa.tistory.com

 


 

예제코드

json 파일내에 키값에 따라 내용이 추가될 항목들이 달라집니다. 현재 예제코드에서 다루고 있는 json파일 내부의 키값은 images, annotations, categories 3개의 키값이 내부에 있다고 가정 후 코드를 작성해 보겠습니다.

 

 

import json
import os

path = './annotations/train/annotations'
train_files = os.listdir(path)
output_list = []

for f in train_files:
    with open(path+'/'+f,'rb') as infile:
        output_list.append(json.load(infile))    

final_json = {}
images= []
annotations = []
categories = []

for json_file in output_list:
    images.extend(json_file['images'])
    annotations.extend(json_file['annotations'])
    categories.extend(json_file['categories'])

final_json['images'] = images
final_json['annotations'] = annotations
final_json['categories'] = categories
  
textfile_merged = open('merged_json.json', 'w')                                                                                                                                                                     
json.dump(({ "images": images, "annotations" : annotations,"categories" : categories }),textfile_merged)
textfile_merged.close()

 

간단한 해석

1. json파일이 있는 폴더경로를 path 변수로 지정 후 train_files 변수로 파일들을 리스트화

2. merge할 json파일을 속성들을 지정 후 빈 딕셔너리, 빈 속성 리스트를 준비

3. 빈 속성 리스트에(images, annotations, categories)에 파일별 속성값을 병합해 주는 extend 함수 사용

4. 빈 딕셔너리 final_json에 각각 속성값 지정 후 값들을 저장할 json파일 오픈 후 json.dump로 저장

 

결과확인 코드

import json
with open('./merged_json.json','rb',encoding='utf-8') as json_file:
     json_data = json.load(json_file)

print(json_data)

 

이 글을 검색하고 참고하시는 분들이라면 현업에 적응한 시간이 별로 안되었거나, 학교, 기관 등에서 교육을 받는 분들이라고 생각됩니다. 해당 사항 관련 및 다른 사항에서도 데이터전처리, 머신러닝, 딥러닝, VISION알고리즘, LLM알고리즘 등 문의사항 있으시면 주저하지 마시고 언제든지 문의 남겨주시면 제 지식 내에서는 모두 안내드리겠습니다. 감사합니다. 

반응형