자바칩
[Flask] json.dumps() vs jsonify() 본문
728x90
✅ json.dumps()과 jsonify()의 역할
함수 | 역할 |
json.dumps() | 파이썬 객체 → JSON 문자열로 변환 |
jsonify() | 파이썬 객체 → JSON 응답(HTTP Response) 으로 변환 (Flask 전용) |
🔍 json.dumps()과 jsonify() 자세히 비교
항목 | json.dumps() | jsonify() |
📦 모듈 | import json (json 표준 라이브러리) | from flask import jsonify |
📤 출력 | JSON 문자열만 반환 | JSON 문자열 + HTTP 응답 객체 (Response) |
📄 Content-Type 설정 | ❌ 없음 | ✅ 자동으로 application/json 설정 |
📱 사용 용도 | 내부 데이터 처리, 로그 저장 등 | API 응답 처리용 |
🧠 Flask context 필요 | ❌ 필요 없음 | ✅ Flask 앱 컨텍스트 내에서만 사용 가능 |
✅ 예시 비교
# json.dumps()
import json
data = {"msg": "hello"}
json_str = json.dumps(data)
# json_str: '{"msg": "hello"}'
# jsonify()
from flask import jsonify
@app.route("/hello")
def hello():
return jsonify(msg="hello")
# → Flask 응답으로 {"msg": "hello"} + Content-Type: application/json
✅ 언제 무엇을 써야 하는가
상황 | 추천 함수 |
Flask API 응답 | jsonify() 👍 |
파일 저장, 로그, 비직접 응답용 변환 | json.dumps() 👍 |
✅ 보너스 팁
- jsonify()는 내부적으로 json.dumps()를 쓰긴 하지만,
- Flask의 설정(debug, prettyprint, Response)을 자동으로 적용해줘서 훨씬 편리하다.
'Study' 카테고리의 다른 글
RDBMS 용어와 NoSQL 용어 비교 (0) | 2025.04.02 |
---|---|
Dockerfile을 이용하여 이미지를 빌드하기 (0) | 2025.03.25 |
TCP 연결 과정: 3-Way & 4-Way Handshake (0) | 2025.03.13 |
VS Code에서 Python 가상환경을 선택 (0) | 2025.03.12 |
uvicorn.run()은 블로킹(blocking) 함수 (0) | 2025.03.05 |