[Python] 폴더 내 여러 JSON 파일 읽기
July 19, 2024
특정 디렉토리 아래의 JSON 파일을 모두 읽어서 딕셔너리에 저장하는 방법에 대해서 알아보겠습니다.
1. JSON 파일 읽기
아래와 같이 JSON 파일을 읽을 수 있습니다. with로 파일을 열기 때문에, 명시적으로 파일을 닫을 필요가 없습니다. with 구문이 종료되면 자동으로 닫힙니다.
with open(file_path, 'r', encoding='utf-8') as json_file
: 파일 열기json_data = json.load(json_file)
: json_file 텍스트를 JSON 형식으로 읽고 딕셔너리 구조로 리턴
with open(file_path, 'r', encoding='utf-8') as json_file:
json_data = json.load(json_file)
2. 특정 폴더 하위의 모든 JSON 파일 읽기
특정 폴더 하위의 모든 JSON 파일을 찾아서 읽고, JSON 데이터를 리스트에 저장합니다. 예제에서는 파싱한 모든 데이터를 마지막에 출력합니다.
for filename in os.listdir(directory_path):
디렉토리 하위의 모든 파일 탐색json_data_list.append(json_data)
: 파싱한 JSON 객체를 리스트에 저장print(json_data_list)
: 파싱한 모든 JSON 데이터 출력
import json
import os
directory_path = '/home/mjs/IdeaProjects/python-ex'
json_data_list = []
# 디렉토리 내의 모든 파일을 검색
for filename in os.listdir(directory_path):
if filename.endswith(".json"):
file_path = os.path.join(directory_path, filename)
# JSON 파일 열기
with open(file_path, 'r', encoding='utf-8') as json_file:
json_data = json.load(json_file)
json_data_list.append(json_data)
print(json_data_list)
Output:
[{'posts': [{'title': 'How to get storage size', 'url': 'https://chacha.com/ko/get-free-and-total-size-of-volumes-in-android/', 'draft': 'false'}, {'title': 'Android Q, Scoped Storage', 'url': 'https://chacha.com/ko/android-q-scoped-storage/', 'draft': 'false'}]}, {'posts': [{'title': 'How to get storage size', 'url': 'https://chacha.com/ko/get-free-and-total-size-of-volumes-in-android/', 'draft': 'false'}, {'title': 'Android Q, Scoped Storage', 'url': 'https://chacha.com/ko/android-q-scoped-storage/', 'draft': 'false'}]}, {'d': 4, 'e': 5, 'f': 6}, {'a': 1, 'b': 2, 'c': 3}]