Python을 사용하여 JSON 파일에 데이터 추가

Mehvish Ashiq 2023년6월21일
  1. Python을 사용하여 JSON 파일에 데이터 추가
  2. Python 목록 개체를 사용하여 데이터를 JSON 파일로 업데이트
  3. Python dict 개체를 사용하여 데이터를 JSON 파일로 업데이트
Python을 사용하여 JSON 파일에 데이터 추가

웹 애플리케이션에서 널리 사용되고 이해하기 쉽기 때문에 대부분의 웹 애플리케이션 및 Rest API에서 JSON 형식의 데이터를 사용자에게 제공합니다. 따라서 웹 애플리케이션에서 Python을 사용하는 경우 Python을 사용하여 JSON 파일에 데이터를 추가하는 데 관심이 있을 수 있습니다.

이 튜토리얼은 Python을 사용하여 JSON 파일에 데이터를 추가하는 가능한 방법을 교육합니다.

Python을 사용하여 JSON 파일에 데이터 추가

Python을 사용하여 직접 JSON 파일을 추가할 수는 없지만 덮어쓸 수는 있습니다. 그렇다면 JSON 파일에 데이터를 추가하는 방법은 무엇입니까?

이를 위해 아래 단계를 따라야 합니다.

  • Python dict 또는 list 개체에서 JSON 파일을 읽습니다.
  • 해당 dict 또는 list 개체를 추가합니다.
  • 업데이트된 dict 또는 list 개체를 원래 JSON 파일에 씁니다(여기서 이전 콘텐츠는 업데이트된 콘텐츠로 덮어쓰여집니다).

JSON 파일(data.json)에는 이 기사의 다음 코드 예제에서 사용할 아래 데이터가 포함되어 있습니다.

JSON 파일 내용(data.json 파일에 저장됨):

{
    "student_details":[
        {
            "student_first_name": "Mehvish",
            "student_last_name": "Ashiq",
            "student_email": "mehvish@gmail.com"
        },
        {
            "student_first_name": "Tahir",
            "student_last_name": "Raza",
            "student_email": "tahir@yahoo.com"
        }

    ]
}

Python 목록 개체를 사용하여 데이터를 JSON 파일로 업데이트

data.json 파일에 다음 학생을 추가한다고 가정합니다.

{
    "student_first_name": "Aftab",
    "student_last_name": "Raza",
    "student_email": "Aftab@gmail.com"
}

따라서 다음 코드를 실행하여 이를 수행해 보겠습니다.

예제 코드(demo.py에 저장됨):

import json


def write_json(new_student, filename="./data.json"):
    with open(filename, "r+") as file:
        file_content = json.load(file)
        file_content["student_details"].append(new_student)
        file.seek(0)
        json.dump(file_content, file, indent=4)


new_student = {
    "student_first_name": "Aftab",
    "student_last_name": "Raza",
    "student_email": "Aftab@gmail.com",
}

write_json(new_student)

먼저 JSON 파일 작업을 위해 json 모듈을 가져옵니다. 다음으로, 두 개의 매개 변수를 사용하는 write_json() 함수를 작성합니다. 추가하려는 학생 세부 정보가 있는 new_studentfilename(여기에서 파일 경로를 지정할 수도 있음)입니다.

이 함수 내에서 open() 메서드를 사용하여 지정된 파일을 읽기 모드로 엽니다. 그런 다음 json.loads()를 사용하여 file_content에서 JSON 문자열을 구문 분석(기존 데이터 로드)합니다.

다음으로, 목록 객체를 사용하여 .append()를 사용하여 student_details 내부의 new_studentfile_content를 조인합니다. file.seek(0)은 오프셋에서 파일의 현재 위치를 설정합니다.

마지막으로 .dump()를 사용하여 다시 JSON으로 변환합니다.

이제 다음과 같이 python demo.py를 사용하여 위의 코드를 실행합니다.

PS E:\Code> python demo.py

위 프로그램이 성공적으로 실행되면 data.json 파일을 덮어씁니다. 아래의 업데이트된 data.json 파일을 참조하십시오.

OUTPUT(data.json의 파일 내용):

{
    "student_details": [
        {
            "student_first_name": "Mehvish",
            "student_last_name": "Ashiq",
            "student_email": "mehvish@gmail.com"
        },
        {
            "student_first_name": "Tahir",
            "student_last_name": "Raza",
            "student_email": "tahir@yahoo.com"
        },
        {
            "student_first_name": "Aftab",
            "student_last_name": "Raza",
            "student_email": "Aftab@gmail.com"
        }
    ]
}

Python dict 개체를 사용하여 데이터를 JSON 파일로 업데이트

이제 모든 학생에 대해 "section": "A" 속성을 하나 더 추가한다고 가정합니다. 다음과 같이 할 수 있습니다.

예제 코드(demo.py 파일에 저장됨):

import json


def write_json(section, filename="./data.json"):
    with open(filename, "r+") as file:
        file_content = json.load(file)
        file_content.update(section)
        file.seek(0)
        json.dump(file_content, file, indent=4)


section = {"section": "A"}

write_json(section)

이 예제는 한 가지 차이점을 제외하고 list 개체를 사용하여 데이터를 JSON 파일로 업데이트한 마지막 예제와 유사합니다. 여기서는 dict 객체를 사용하여 다른 dict 객체 또는 반복 가능한 키-값 쌍의 요소로 dict(사전)를 업데이트하는 .update() 메서드를 사용합니다.

python demo.py 명령을 사용하여 이 프로그래밍을 실행한 후 data.json 파일에 다음 내용이 있습니다.

OUTPUT(data.json 파일에 저장됨):

{
    "student_details": [
        {
            "student_first_name": "Mehvish",
            "student_last_name": "Ashiq",
            "student_email": "mehvish@gmail.com"
        },
        {
            "student_first_name": "Tahir",
            "student_last_name": "Raza",
            "student_email": "tahir@yahoo.com"
        },
        {
            "student_first_name": "Aftab",
            "student_last_name": "Raza",
            "student_email": "Aftab@gmail.com"
        }
    ],
    "section": "A"
}
Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook

관련 문장 - Python JSON