Cara Mengendalikan Objek Datetime dalam Pertukaran JSON Antara Python dan JavaScript

Susan Sarandon
Lepaskan: 2024-10-19 17:30:30
asal
486 orang telah melayarinya

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

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

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

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!

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
Artikel terbaru oleh pengarang
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!