본문 바로가기

코딩/파이썬 기초

파이썬 튜토리얼 038. JSON 파일 쓰기

JSON 파일 쓰기

임의 데이터를 JSON (JavaScript Object Notation) 포맷의 파일에 저장하는 방법에 대하여 작성한다.

 

JSON 파일을 구성하는 요소와 관련 파이썬 데이터 타입은 아래 표와 같다.

 

JSON Python
object dict
array list
string str
number (int 또는 float) int 또는 float
true True
false False
null None

 

임의 데이터를 JSON 포맷의 파일에 저장하기 위해 파이썬의 json 패키지를 import 한다.

 

import json

 

JSON 포맷의 파일에 데이터를 쓰기 위해 json의 dump 함수를 사용한다.

 

json.dump(obj,
          fp,
          *,
          skipkeys=False,
          ensure_ascii=True,
          check_circular=True,
          allow_nan=True,
          cls=None,
          indent=None,
          separators=None,
          default=None,
          sort_keys=False,
          **kw)

 

우선 파이썬 데이터 타입 리스트를 JSON 파일로 저장한다. 파이썬 데이터 타입 리스트는 JSON의 array 요소와 연관된다.

 

<코드 1>

import json

data = [
    1,
    2,
    3
]

with open('my_json.json', 'wt') as j_file:
        json.dump(data, j_file, indent=4)

 

위의 <코드 1>을 실행하면, my_json.json 파일이 생성된다.

 

 

JSON 파일의 구성 요소 array 외 다른 요소에 대해서도 하나씩 사용해 본다.

 

<코드 2>

import json

data = [
    {'dic 1': 1, 'dic 2': '2'},
    [1, 'list 1'],
    'str',
    int(1),
    float(1.),
    True,
    False
]

with open('my_json.json', 'wt') as j_file:
        json.dump(data, j_file, indent=4)

 

element

JSON 파일은 element로 구성되며, element는 value 중의 하나의 요소로 정의된다.

 

json
	element

element
	value

value

value에 속하는 요소는 아래와 같다.

 

value
    object
    array
    string
    number
    true
    false
    null

object

JSON 파일의 object는 파이썬의 딕셔너리와 연관된다.

JSON 파일의 object가 파이썬의 딕셔너리와 차이나는 점은 object는 키의 값으로 string이 사용된다는 것이다.

 

아래의 코드에서와 같이 파이썬 딕셔너리의 키 값을 정수로 정의하면,

 

<코드 3>

import json

data = {1: 1}

with open('my_json.json', 'wt') as j_file:
        json.dump(data, j_file, indent=4)

 

JSON 파일에선 string 타입으로 변경됨을 확인한다.

 

 

json.org에 설명되어 있는 object에 대한 정의 규칙은 아래와 같다.

 

json.org

참고

2021.05.10 - [학습 노트/Python - 내장 라이브러리] - [Python][json] JSON 파일 읽기