JSON을 사용하여 Python과 JavaScript 간 날짜/시간 개체 변환
데이터 직렬화 및 역직렬화 영역에서 Python과 JavaScript 간의 날짜/시간 개체 교환은 JSON을 통한 JavaScript는 문제를 일으킬 수 있습니다. 이 문제를 어떻게 해결할 수 있는지 알아보고 이 변환을 처리하기 위한 최선의 접근 방식을 제시해 보겠습니다.
Python에서 직렬화
Python에서 datetime.datetime 개체를 Python으로 직렬화하려면 JSON에서는 Python의 내장 json.dumps() 함수를 사용할 수 있습니다. 그러나 날짜/시간 객체를 적절하게 처리하려면 사용자 정의 '기본값' 매개변수를 제공해야 합니다. 다음은 샘플 코드 조각입니다.
<code class="python">import datetime import json date_handler = lambda obj: ( obj.isoformat() if isinstance(obj, (datetime.datetime, datetime.date)) else None ) json_string = json.dumps(datetime.datetime.now(), default=date_handler) print(json_string) # Output: "2010-04-20T20:08:21.634121"</code>
이 접근 방식을 사용하면 날짜 및 시간 표현에 널리 지원되는 ISO 8601 형식으로 날짜/시간 개체가 직렬화됩니다.
JavaScript의 역직렬화
JSON.parse()와 같이 JSON 구문 분석을 처리하는 JavaScript 라이브러리를 사용하는 경우 자동으로 ISO 8601 문자열을 Date 객체로 역직렬화합니다. JavaScript에서는 다음과 같이 표시됩니다.
<code class="js">const json_object = JSON.parse(json_string); const js_date = new Date(json_object); // Converted to JavaScript Date object</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>
이 접근 방식을 활용하면 직렬화 중 다양한 객체 유형을 손쉽게 처리할 수 있습니다.
추가 참고 사항
위 내용은 JSON을 사용하여 Python과 JavaScript 간에 날짜/시간 개체를 변환하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!