Bagaimana untuk Mensirrikan Objek Datetime Python untuk Pertukaran JSON yang lancar dengan JavaScript?

DDD
Lepaskan: 2024-10-19 17:32:02
asal
630 orang telah melayarinya

How to Serialize Python Datetime Objects for Seamless JSON Exchange with JavaScript?

Menyerikan Objek Datetime Python untuk Pertukaran JSON dengan JavaScript

Apabila menggunakan JSON untuk berkomunikasi antara Python dan JavaScript, cabaran timbul dalam mengendalikan objek datetime. Untuk menangani perkara ini, Python menyediakan pengendali lalai yang boleh disesuaikan, yang boleh disepadukan dengan json.dumps untuk mendayakan pensirilan dan penyahserilan yang betul bagi objek ini.

Dalam Python, fungsi pengendali berikut memanfaatkan format ISO 8601 untuk menukar datetime objek ke dalam rentetan yang mematuhi JSON:

<code class="python">date_handler = lambda obj: (
    obj.isoformat()
    if isinstance(obj, (datetime.datetime, datetime.date))
    else None
)</code>
Salin selepas log masuk

Ini memastikan bahawa rentetan JSON yang terhasil adalah dalam format yang boleh dihuraikan dengan mudah oleh JavaScript.

Walau bagaimanapun, adalah penting untuk mempertimbangkan bahawa ISO 8601 format tidak menyampaikan jenis objek. Untuk pengendalian yang lebih komprehensif, fungsi pengendali yang lebih mantap dapat ditakrifkan:

<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>
Salin selepas log masuk

Pengendali lanjutan ini 不仅提供了对日期值的格式化, 还明确了对象的类型, 使其在 JavaScript 中更易于反序列化。

Atas ialah kandungan terperinci Bagaimana untuk Mensirrikan Objek Datetime Python untuk Pertukaran JSON yang lancar dengan JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!