반응형
Python json 라이브러리에서 가장 헷갈리기 쉬운 부분입니다. 핵심은 끝에 붙은 s가 'String(문자열)'을 의미한다는 점입니다.
이를 기억하면 구분하기 매우 쉽습니다.
1. json.load vs json.loads (읽기/디코딩)
JSON 데이터를 Python 객체(Dictionary, List 등)로 변환(Read)할 때 사용합니다.
- json.load() (File Load):
- 파일 객체에서 직접 읽습니다.
- open() 함수로 연 파일에서 데이터를 읽어올 때 사용합니다.
- json.loads() (String Load):
- 문자열(String) 변수에서 읽습니다.
- 메모리에 이미 로드된 JSON 형식의 문자열 텍스트를 파싱할 때 사용합니다.
예시 코드:
Python
import json
# 1. json.loads() : 문자열(s)을 읽음
json_string = '{"name": "Jane", "age": 1}'
data_from_str = json.loads(json_string)
print(data_from_str['name']) # 출력: Jane
# 2. json.load() : 파일(file)을 읽음
# (data.json 파일이 있다고 가정)
with open('data.json', 'r') as f:
data_from_file = json.load(f)
print(data_from_file['name'])
2. json.dump vs json.dumps (쓰기/인코딩)
Python 객체를 JSON 데이터로 변환(Write)할 때 사용합니다.
- json.dump() (File Dump):
- Python 객체를 파일 객체에 직접 씁니다 (저장).
- 결과를 파일로 저장하고 싶을 때 사용합니다.
- json.dumps() (String Dump):
- Python 객체를 JSON 문자열(String)로 변환하여 반환합니다.
- 파일로 저장하지 않고, 단순히 문자열 형태로 변환해서 네트워크로 전송하거나 출력하고 싶을 때 사용합니다.
예시 코드:
Python
import json
my_data = {"name": "Jane", "language": "Python"}
# 1. json.dumps() : 문자열(s)로 반환
json_str = json.dumps(my_data)
print(type(json_str)) # <class 'str'>
print(json_str) # 출력: {"name": "Jane", "language": "Python"}
# 2. json.dump() : 파일(file)에 저장
with open('output.json', 'w') as f:
json.dump(my_data, f)
# output.json 파일이 생성되고 내용이 작성됨
3. 요약 비교표
| 구분 | 함수명 | 대상 (Target) | 설명 | 기억 팁 |
| 읽기 (Decoding) | load() | 파일 (File) | 파일을 읽어서 Python 객체로 변환 | Load File |
| loads() | 문자열 (String) | 문자열을 읽어서 Python 객체로 변환 | Load String | |
| 쓰기 (Encoding) | dump() | 파일 (File) | Python 객체를 파일에 저장 | Dump to File |
| dumps() | 문자열 (String) | Python 객체를 JSON 문자열로 변환 | Dump to String |
꿀팁: 함수 이름 뒤에 s가 붙으면 무조건 String(문자열)을 다룬다고 생각하시면 됩니다.
반응형
'IT > Python' 카테고리의 다른 글
| 서버 파일을 브라우저로 3초 만에 확인하는 방법 (Python 한 줄 명령어) (0) | 2025.12.09 |
|---|---|
| 파이썬으로 메모리 부족(OOM) 없이 수 기가바이트(GB) 대용량 파일 처리하는 5가지 핵심 전략 (0) | 2025.12.09 |
| 파이썬 버전별 비교 및 신규 기능 (0) | 2024.04.09 |
| Python 오류 메시지의 가독성을 높이자! pretty_errors (0) | 2024.04.01 |
| Windows 환경에서 pip 쉽게 설치하기 (0) | 2023.06.06 |
댓글