Rumah  >  Artikel  >  hujung hadapan web  >  Cara Mengendalikan Objek Datetime dalam Pertukaran JSON Antara Python dan JavaScript

Cara Mengendalikan Objek Datetime dalam Pertukaran JSON Antara Python dan JavaScript

Susan Sarandon
Susan Sarandonasal
2024-10-19 17:30:30487semak imbas

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

Mengendalikan Objek Datetime dalam JSON Exchange Antara Python dan JavaScript

Apabila menukar objek datetime antara Python dan JavaScript menggunakan JSON, terdapat cabaran yang perlu kepada cara yang berbeza kedua-dua bahasa mewakili tarikh dan masa. Artikel ini membentangkan amalan terbaik untuk tugasan ini.

Penukaran Python-ke-JavaScript

Untuk mensiri objek datetime.datetime dalam Python untuk penghantaran JSON, gunakan ' parameter lalai' bagi fungsi json.dumps dengan fungsi pengendali tarikh tersuai:

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

Fungsi ini mengembalikan format ISO 8601 bagi objek datetime, yang merupakan piawaian yang diterima secara meluas untuk perwakilan tarikh dan masa.

Penukaran JavaScript-ke-Python

Dalam JavaScript, anda boleh menyahsiri rentetan JSON yang diterima dengan fungsi pengubah tarikh tersuai. Fungsi ini akan menghuraikan rentetan ISO 8601 dan membina semula objek datetime:

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

Pengendali Tarikh Komprehensif

Untuk pendekatan yang lebih komprehensif, anda boleh mencipta tarikh tersuai fungsi pengendali yang meliputi berbilang jenis data:

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

Fungsi ini memastikan jenis objek yang berbeza dikendalikan dengan sewajarnya semasa bersiri.

Nota Tambahan

  • Format ISO 8601 yang digunakan untuk objek datetime ialah ISO 8601.
  • Pendekatan ini juga boleh mengendalikan objek tarikh (datetime.date) dalam Python.

Atas ialah kandungan terperinci Cara Mengendalikan Objek Datetime dalam Pertukaran JSON Antara Python dan JavaScript. 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