Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬 객체를 JSON 객체로 변환하는 방법 (json.dumps 사용법)

파이썬 객체를 JSON 객체로 변환하는 방법

파이썬에서 리스트, 딕셔너리 같은 객체를 JSON 형식의 문자열로 변환하는 것을 직렬화(Serialization)라고 합니다. 파이썬은 기본 내장 모듈인 json을 제공하며, 이 모듈의 json.dumps() 메서드를 사용하면 간단하게 변환할 수 있습니다.

기본 예제: 리스트 객체 변환하기

예를 들어 다음과 같은 리스트 객체가 있다고 가정해 보겠습니다.

>>> a = [1, 2, 3]

먼저 json 모듈을 임포트한 뒤, json.dumps() 메서드에 객체를 전달하면 JSON 문자열이 반환됩니다.

>>> import json
>>> json.dumps(a)
'[1, 2, 3]'

결과로 얻은 '[1, 2, 3]'이 바로 JSON 객체(JSON 문자열)입니다. 원래의 파이썬 리스트와 데이터는 동일하지만, 타입이 str로 변경된 점에 유의하세요.

딕셔너리 객체도 변환 가능

json.dumps()는 리스트뿐만 아니라 딕셔너리 등 다양한 파이썬 객체를 지원합니다.

>>> data = {'name': '홍길동', 'age': 30}
>>> json.dumps(data, ensure_ascii=False)
'{"name": "홍길동", "age": 30}'

한글이 포함된 경우 ensure_ascii=False 옵션을 사용하면 한글이 그대로 출력됩니다. 이 옵션을 생략하면 한글이 유니코드 이스케이프 문자(\uXXXX)로 표시됩니다.

자주 사용되는 옵션

  • indent: 들여쓰기를 적용해 사람이 읽기 쉬운 형태로 출력합니다. 예: json.dumps(a, indent=4)
  • sort_keys: True로 설정하면 키를 알파벳 순으로 정렬합니다.
  • ensure_ascii: False로 설정하면 한글 등 비 ASCII 문자를 그대로 출력합니다.

참고: 파일에 저장할 때는 json.dump() 사용

변환 결과를 파일로 저장하려면 문자열을 반환하는 json.dumps() 대신, 파일 객체에 직접 쓰는 json.dump()를 사용하는 것이 편리합니다.

>>> with open('data.json', 'w', encoding='utf-8') as f:
... json.dump(a, f)

정리

파이썬 객체를 JSON 객체로 변환하려면 import json으로 모듈을 불러온 후 json.dumps() 메서드를 호출하면 됩니다. 반대로 JSON 문자열을 파이썬 객체로 되돌릴 때는 json.loads()를 사용합니다.