Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara Menukar Objek Datetime Antara Python dan JavaScript Menggunakan JSON

Cara Menukar Objek Datetime Antara Python dan JavaScript Menggunakan JSON

DDD
DDDasal
2024-10-20 19:15:02565semak imbas

How to Convert Datetime Objects Between Python and JavaScript Using JSON

Menukar Objek Datetime antara Python dan JavaScript menggunakan JSON

Dalam bidang pensirilan data dan penyahsiran, pertukaran objek datetime antara Python dan JavaScript melalui JSON boleh menimbulkan cabaran. Mari kita mendalami cara kita boleh menangani isu ini dan membentangkan pendekatan terbaik untuk mengendalikan penukaran ini.

Serialization dalam Python

Untuk mensiri objek datetime.datetime daripada Python ke JSON, kita boleh menggunakan fungsi json.dumps() terbina dalam Python. Walau bagaimanapun, untuk memastikan pengendalian objek datetime dengan betul, kami perlu menyediakan parameter 'lalai' tersuai. Berikut ialah coretan kod sampel:

<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>

Pendekatan ini memastikan objek datetime disiri dalam format ISO 8601, yang disokong secara meluas untuk perwakilan tarikh dan masa.

Penyahserialisasian dalam JavaScript

Jika anda menggunakan pustaka JavaScript yang mengendalikan penghuraian JSON, seperti JSON.parse(), ia akan menyahsiri rentetan ISO 8601 secara automatik menjadi objek Tarikh. Begini rupanya dalam JavaScript:

<code class="js">const json_object = JSON.parse(json_string);
const js_date = new Date(json_object);  // Converted to JavaScript Date object</code>

Pengendali Lalai Komprehensif

Untuk pendekatan yang lebih komprehensif, pertimbangkan untuk menggunakan fungsi pengendali lalai yang mengendalikan julat yang lebih luas. jenis objek semasa bersiri:

<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>

Dengan menggunakan pendekatan ini, anda boleh mengendalikan pelbagai jenis objek dengan mudah semasa bersiri.

Nota Tambahan

  • ISO 8601 ialah standard untuk mewakili tarikh dan masa dalam format yang boleh dibaca mesin.
  • Output pengendali tersuai hendaklah sepadan dengan format yang dijangkakan oleh deserializer.
  • Untuk lebih lanjut maklumat, rujuk kepada dokumentasi json.dumps() Python dan JSON.parse() JavaScript.

Atas ialah kandungan terperinci Cara Menukar Objek Datetime Antara Python dan JavaScript Menggunakan JSON. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn