>  기사  >  웹 프론트엔드  >  Python과 JavaScript 간 JSON 교환에서 날짜/시간 개체를 처리하는 방법

Python과 JavaScript 간 JSON 교환에서 날짜/시간 개체를 처리하는 방법

Susan Sarandon
Susan Sarandon원래의
2024-10-19 17:30:30487검색

How to Handle Datetime Objects in JSON Exchange Between Python and JavaScript

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

JSON을 사용하여 Python과 JavaScript 간에 날짜/시간 개체를 교환할 때 다음과 같은 문제가 있습니다. 두 언어가 날짜와 시간을 나타내는 방식이 다릅니다. 이 문서에서는 이 작업에 대한 모범 사례를 제시합니다.

Python-to-JavaScript 변환

JSON 전송을 위해 Python에서 datetime.datetime 객체를 직렬화하려면 ' 사용자 정의 날짜 핸들러 함수가 포함된 json.dumps 함수의 default' 매개변수:

<code class="python">date_handler = lambda obj: (
    obj.isoformat()
    if isinstance(obj, (datetime.datetime, datetime.date))
    else None
)
json.dumps(datetime.datetime.now(), default=date_handler)</code>

이 함수는 날짜 및 시간 표현에 대해 널리 사용되는 표준인 날짜/시간 객체의 ISO 8601 형식을 반환합니다.

JavaScript-to-Python 변환

JavaScript에서는 사용자 정의 날짜 부활 기능을 사용하여 수신된 JSON 문자열을 역직렬화할 수 있습니다. 이 함수는 ISO 8601 문자열을 구문 분석하고 날짜/시간 객체를 재구성합니다.

<code class="javascript">let date_reviver = date => new Date(date);
JSON.parse(json_string, date_reviver);</code>

종합 날짜 처리기

더 포괄적인 접근 방식을 위해 사용자 정의 날짜를 만들 수 있습니다. 여러 데이터 유형을 다루는 핸들러 함수:

<code class="python">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))</code>

이 함수는 직렬화 중에 다양한 유형의 객체가 적절하게 처리되도록 보장합니다.

추가 참고 사항

  • 날짜/시간 개체에 사용되는 ISO 8601 형식은 ISO 8601입니다.
  • 이 접근 방식은 Python에서 날짜 개체(datetime.date)도 처리할 수 있습니다.

위 내용은 Python과 JavaScript 간 JSON 교환에서 날짜/시간 개체를 처리하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.