"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Python과 JavaScript 사이에서 JSON의 날짜/시간 개체를 직렬화 및 역직렬화하는 방법

Python과 JavaScript 사이에서 JSON의 날짜/시간 개체를 직렬화 및 역직렬화하는 방법

2024-11-08에 게시됨
검색:420

How to Serialize and Deserialize Datetime Objects in JSON Between Python and JavaScript

Python과 JavaScript 간 JSON에서 날짜/시간 개체 처리

Python과 JavaScript 간에 데이터를 교환할 때 날짜/시간 개체를 만나는 것이 일반적입니다. 이러한 객체의 원활한 직렬화 및 역직렬화를 보장하기 위해 다양한 접근 방식을 사용할 수 있습니다.

권장되는 방법 중 하나는 Python에서 json.dumps의 '기본' 매개변수를 활용하여 날짜/시간 객체를 처리하는 것입니다. 이 매개변수를 사용하면 날짜/시간 객체를 직렬화 가능한 형식으로 변환하는 처리기 함수를 지정할 수 있습니다.

from datetime import datetime

date_handler = lambda obj: (
    obj.isoformat()
    if isinstance(obj, (datetime.datetime, datetime.date))
    else None
)
json_str = json.dumps(datetime.datetime.now(), default=date_handler)
print(json_str)

이 접근 방식을 사용하면 Python 날짜/시간 객체가 JavaScript에서 표준화되고 인식되는 ISO 8601 형식으로 변환됩니다.

"2010-04-20T20:08:21.634121"

또는 다양한 객체 유형을 처리하기 위해 보다 포괄적인 기본 핸들러 함수를 정의할 수 있습니다.

def handler(obj):
    if hasattr(obj, 'isoformat'):
        return obj.isoformat()
    elif isinstance(obj, ...):
        return ...
    else:
        raise TypeError, 'Object of type %s with value of %s is not JSON serializable' % (type(obj), repr(obj))

이 함수는 'isoformat' 속성이 있는지 확인합니다. 이는 datetime 객체에서 일반적이며 이를 직렬화 가능한 형식으로 변환합니다. 또한 필요에 따라 다른 객체 유형을 처리합니다.

이러한 기술을 활용하면 날짜/시간 객체를 Python에서 효율적으로 직렬화하고 JavaScript에서 역직렬화하여 두 언어 간의 원활한 데이터 교환을 촉진할 수 있습니다.

릴리스 선언문 이 글은 1729330037에서 재인쇄되었습니다. 침해 내용이 있는 경우, [email protected]으로 연락하여 삭제하시기 바랍니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3