Python에서 JSON 파일의 데이터를 업데이트하고 편집하는 방법 철저히 해설

JSON(JavaScript Object Notation)은 데이터 교환 형식으로 널리 사용됩니다. 그 경량성과 가독성 덕분에, 웹 API 응답이나 설정 파일 등 다양한 상황에서 사용되고 있습니다. 이 기사에서는 Python을 사용하여 JSON 파일을 효율적으로 읽고, 업데이트하고, 편집하는 방법을 구체적인 코드 예제와 함께 자세히 설명합니다. 이를 통해 Python 초보자도 쉽게 JSON 파일을 조작할 수 있게 될 것입니다.

목차

JSON 파일이란?

JSON 파일은 JavaScript Object Notation의 약자로, 경량이며 사람이 읽기 쉬운 데이터 교환 형식입니다. 주로 키와 값의 쌍으로 구성된 객체나, 값의 목록으로 구성된 배열을 표현합니다. JSON은 언어에 의존하지 않으며, 많은 프로그래밍 언어에서 지원되기 때문에 데이터의 저장이나 전송에 널리 사용되고 있습니다.

Python에서 JSON 파일을 읽는 방법

Python에서는 표준 라이브러리의json모듈을 사용하여 간단하게 JSON 파일을 읽을 수 있습니다. 아래에 기본적인 절차와 코드 예제를 소개합니다.

JSON 모듈 임포트

먼저, json 모듈을 임포트합니다. 이 모듈은 표준 라이브러리에 포함되어 있기 때문에, 추가 설치가 필요 없습니다.

import json

JSON 파일 읽기

다음으로, JSON 파일을 읽습니다. 아래의 코드 예제에서는, 파일 data.json을 읽고 그 내용을 Python의 딕셔너리형 객체로 가져옵니다.

with open('data.json', 'r') as file:
    data = json.load(file)
print(data)

위 코드에서는 open 함수로 파일을 열고, json.load 함수로 JSON 데이터를 읽습니다. 읽어들인 데이터는 Python의 딕셔너리형으로 다룰 수 있습니다.

JSON 파일의 데이터를 업데이트하는 방법

Python에서는, 읽어들인 JSON 데이터를 쉽게 업데이트할 수 있습니다. 아래에 구체적인 절차와 코드 예제를 소개합니다.

JSON 데이터 업데이트

읽어들인 JSON 데이터는 Python의 딕셔너리형 객체로 취급됩니다. 이를 업데이트하려면, 일반적인 딕셔너리 조작을 수행합니다. 예를 들어, 특정 키의 값을 변경하는 방법은 다음과 같습니다.

# 기존 데이터 업데이트
data['name'] = '새로운 이름'

업데이트된 데이터 저장

업데이트된 데이터를 원래 JSON 파일에 저장하려면, json.dump 함수를 사용합니다. 아래의 예에서는, 업데이트된 데이터를 data.json 파일에 덮어쓰기 저장합니다.

with open('data.json', 'w') as file:
    json.dump(data, file, indent=4)

위 코드에서는, open 함수로 파일을 열고, json.dump 함수로 업데이트된 데이터를 기록합니다. indent 매개변수를 지정함으로써, 저장된 JSON 데이터의 들여쓰기를 설정하여 가독성을 향상시킬 수 있습니다.

JSON 파일에 새로운 데이터를 추가하는 방법

기존의 JSON 파일에 새로운 데이터를 추가하는 것도 Python에서는 쉽게 할 수 있습니다. 아래에 구체적인 절차와 코드 예제를 소개합니다.

새로운 데이터 추가

JSON 데이터는 딕셔너리형 객체로 취급되므로, 새로운 키와 값의 쌍을 추가하려면 딕셔너리에 대해 새로운 항목을 추가하면 됩니다. 아래의 예에서는, age라는 새로운 키와 그 값을 추가합니다.

# 새로운 데이터 추가
data['age'] = 30

추가된 데이터 저장

새로운 데이터를 추가한 후에는, 업데이트된 내용을 JSON 파일에 저장합니다. 저장 방법은 업데이트와 동일합니다. 아래의 예에서는, data.json 파일에 새로운 데이터를 추가하여 저장합니다.

with open('data.json', 'w') as file:
    json.dump(data, file, indent=4)

이렇게 하여, 새로운 데이터를 기존의 JSON 파일에 추가하고 저장할 수 있습니다.

JSON 파일의 데이터를 삭제하는 방법

Python에서는, 딕셔너리형 객체를 조작하여 JSON 파일에서 불필요한 데이터를 삭제할 수 있습니다. 아래에 구체적인 절차와 코드 예제를 소개합니다.

데이터 삭제

JSON 데이터에서 특정 키와 그 값을 삭제하려면, 딕셔너리의 del 문을 사용합니다. 아래의 예에서는, age 키를 삭제합니다.

# 특정 키 삭제
del data['age']

삭제된 데이터 저장

데이터를 삭제한 후에는, 업데이트된 내용을 JSON 파일에 저장합니다. 저장 방법은 업데이트나 추가와 동일합니다. 아래의 예에서는, data.json 파일에 삭제된 데이터를 저장합니다.

with open('data.json', 'w') as file:
    json.dump(data, file, indent=4)

이렇게 하여, 불필요한 데이터를 JSON 파일에서 삭제하고 저장할 수 있습니다.

JSON 파일의 저장과 인코딩

업데이트 또는 편집된 JSON 데이터를 저장할 때에는, 적절한 인코딩 설정이 중요합니다. 아래에 JSON 파일의 저장 방법과 인코딩에 대해 설명합니다.

JSON 데이터 저장

Python에서는 json.dump 함수를 사용하여 업데이트 또는 편집된 JSON 데이터를 파일에 저장합니다. 파일을 쓰기 모드로 열고, 업데이트된 데이터를 저장합니다.

with open('data.json', 'w', encoding='utf-8') as file:
    json.dump(data, file, indent=4, ensure_ascii=False)

여기서 encoding='utf-8'을 지정하면, 파일이 UTF-8 인코딩으로 저장됩니다. 또한, ensure_ascii=False를 지정하면 비ASCII 문자도 그대로 저장되기 때문에, 일본어 등도 올바르게 저장할 수 있습니다.

인코딩의 중요성

인코딩 설정은 특히 국제화 대응 애플리케이션에서 중요합니다. UTF-8 인코딩을 사용하면, 다양한 문자 세트를 지원하여 데이터의 호환성을 확보할 수 있습니다.

응용 예제: 여러 JSON 파일을 조작하기

Python을 사용하여 여러 JSON 파일을 조작할 때에는, 각 파일의 읽기, 데이터 통합, 업데이트, 저장과 같은 일련의 작업이 필요합니다. 아래에 구체적인 절차와 코드 예제를 소개합니다.

여러 파일 읽기

먼저, 여러 JSON 파일을 읽습니다. 아래의 예에서는 data1.jsondata2.json의 두 파일을 읽고, 각각의 데이터를 가져옵니다.

import json

# 파일 읽기
with open('data1.json', 'r') as file1, open('data2.json', 'r') as file2:
    data1 = json.load(file1)
    data2 = json.load(file2)

데이터 통합

읽어들인 데이터를 통합하는 방법을 소개합니다. 아래의 예에서는 두 개의 딕셔너리를 병합하고 있습니다.

# 데이터 통합
merged_data = {**data1, **data2}

딕셔너리의 키가 중복되는 경우, data2의 값이 우선됩니다.

통합 데이터의 업데이트 및 저장

통합한 데이터를 업데이트하고, 저장합니다. 아래의 예에서는 통합 데이터에 새로운 항목을 추가하고, merged_data.json 파일에 저장합니다.

# 데이터 업데이트
merged_data['new_key'] = '새로운 값'

# 통합 데이터 저장
with open('merged_data.json', 'w', encoding='utf-8') as file:
    json.dump(merged_data, file, indent=4, ensure_ascii=False)

이렇게 하여, 여러 JSON 파일을 조작하고, 데이터를 통합하여 저장할 수 있습니다.

연습 문제

여기에서는 독자가 Python으로 JSON 파일을 조작하는 기술을 익히기 위한 연습 문제를 제공합니다. 이러한 문제를 통해, 배운 내용을 실천적으로 이해할 수 있게 됩니다.

연습 문제 1: JSON 파일 읽기

아래의 example.json 파일을 읽고, 그 내용을 표시하세요.

{
    "name": "Alice",
    "age": 25,
    "city": "Tokyo"
}

연습 문제 2: 데이터 업데이트

연습 문제 1에서 읽어들인 데이터의 age를 30으로 업데이트하고, 업데이트된 내용을 표시하세요.

연습 문제 3: 새로운 데이터 추가

연습 문제 2에서 업데이트된 데이터에 새로운 키 email과 그 값 alice@example.com을 추가하고, 업데이트된 내용을 표시하세요.

연습 문제 4: 데이터 삭제

연습 문제 3에서 추가한 email 키와 그 값을 삭제하고, 삭제된 내용을 표시하세요.

연습 문제 5: 여러 파일 통합

아래의 두 JSON 파일을 읽고, 데이터를 통합하여 표시하세요.

// file1.json
{
    "name": "Alice",
    "age": 25
}

// file2.json
{
    "city": "Tokyo",
    "country": "Japan"
}

통합 후의 데이터에 새로운 키 phone과 그 값 123-456-7890을 추가하고, 통합 데이터를 새로운 파일 merged.json에 저장하세요.

이러한 연습 문제를 통해, Python에서의 JSON 파일 조작 기초를 확실하게 익힐 수 있습니다.

요약

Python을 사용하여 JSON 파일을 조작하는 방법에 대해 자세히 설명했습니다. JSON 파일의 기본 구조와, Python에서의 읽기, 데이터의 업데이트·추가·삭제, 여러 파일의 통합과 같은 조작 방법을 배웠습니다. 또한, 연습 문제를 통해 실천적인 기술을 익힐 수 있었습니다. 이러한 지식을 활용하여, 데이터 처리나 API 연계 등 다양한 상황에서 유용하게 활용해 보세요. 앞으로의 학습에서도 Python의 강력한 라이브러리를 활용하여, 효율적인 프로그래밍을 목표로 하세요.

목차