flask의 jsonify 내장함수는 flask의 jsonserializer역할을 하는데
string형태로 출력하는 기능을 내장하지 않은 데이터타입의 경우
serializer 에러를 볼 수 있다
이 때
class JsonCustomEncoder(json.JSONEncoder):
def default(self, obj):
if isinstance(obj, bytes):
return obj.decode("utf-8")
if isinstance(obj, datetime.datetime):
return obj.strftime("%Y-%m-%d %H:%M:%S")
return json.JSONEncoder.default(self, obj)
위와 같이 JSONencoder를 상속받아 특정 객체에 대한 행동을 정의해 주고 난 뒤
app = Flask(__name__)
CORS(app)
app.config['JSON_SORT_KEYS'] = False
app.json_encoder = JsonCustomEncoder
app에 encoder를 입력시키면 jsonify에서 encode할 수 없었던 객체에 대한
serialization이 가능해진다