자바칩

[Flask] json.dumps() vs jsonify() 본문

Study

[Flask] json.dumps() vs jsonify()

아기제이 2025. 3. 31. 19:03
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)을 자동으로 적용해줘서 훨씬 편리하다.