>웹 프론트엔드 >JS 튜토리얼 >Python과 JavaScript 간의 JSON 변환에서 날짜/시간 개체를 처리하는 방법은 무엇입니까?

Python과 JavaScript 간의 JSON 변환에서 날짜/시간 개체를 처리하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-10-19 17:29:30722검색

How to Handle Datetime Objects in JSON Conversions Between Python and JavaScript?

Python과 JavaScript 간의 JSON datetime 변환

JSON을 사용하여 Python과 JavaScript 간에 데이터를 전송할 때 datetime 객체 처리에 특별한 주의를 기울여야 합니다. 이 기사에서는 Python에서 날짜/시간 객체를 직렬화하고 JavaScript에서 이를 역직렬화하는 최적의 접근 방식을 살펴봅니다.

Python의 직렬화

Python의 json.dumps 함수에서 기본 매개변수를 활용하여 날짜/시간 직렬화를 처리합니다.

<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)
# Output: '"2010-04-20T20:08:21.634121"' (ISO 8601 format)</code>

JavaScript의 역직렬화

JavaScript에서 JSON.parse 함수를 사용하고 사용자 정의 부활 함수로 역직렬화를 처리합니다.

<code class="javascript">let date = JSON.parse(jsonString, (key, value) => {
  if (typeof value === 'string' && value.match(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$/)) {
    return new Date(value);
  }
  return value;
});</code>

Python의 포괄적인 기본 처리기

다양한 데이터 유형을 수용하기 위해 보다 포괄적인 기본 핸들러 기능을 정의할 수 있습니다.

<code class="python">import datetime

def handler(obj):
    if hasattr(obj, 'isoformat'):
        return obj.isoformat()
    elif isinstance(obj, datetime.date):
        return str(obj)  # Convert to string for date objects
    elif isinstance(obj, ...):
        return ...  # Handle other types as needed
    else:
        raise TypeError('Cannot serialize object of type {} with value {}'.format(type(obj), repr(obj)))</code>

향상된 기본 핸들러

향상된 핸들러에는 다음이 포함됩니다.

  • datetime 및 date 객체 모두 처리
  • 직렬화할 수 없는 객체 발견 시 유형과 값 모두 출력

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

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