✅ 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)을 자동으로 적용해줘서 훨씬 편리하다.