JSON을 통해 Python과 JavaScript 간의 날짜/시간 연속성 유지
솔루션을 시작하기 전에 먼저 문제를 이해해 보겠습니다. Python에 직렬화하여 JSON을 통해 JavaScript로 전송해야 하는 datetime.datetime 개체가 있습니다. 도착 시 JavaScript는 왜곡 없이 날짜/시간 객체로 다시 역직렬화할 수 있어야 합니다.
이 문제를 해결하기 위해 json.dumps에 있는 JSON의 다용도 '기본' 매개변수가 해결책을 제공합니다. 이 매개변수를 사용하면 날짜 시간 객체에 대한 사용자 정의 직렬화 핸들러를 정의할 수 있습니다.
다음 핸들러는 직렬화 프로세스를 깔끔하게 처리합니다.
<code class="python">date_handler = lambda obj: ( obj.isoformat() if isinstance(obj, (datetime.datetime, datetime.date)) else None )</code>
적용되면 이 핸들러는 날짜 시간 객체를 ISO 8601 형식으로 변환합니다. 직렬화 중:
<code class="python">json.dumps(datetime.datetime.now(), default=date_handler) '"2010-04-20T20:08:21.634121"'</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 중국어 웹사이트의 기타 관련 기사를 참조하세요!