Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana Mengendalikan Objek Datetime dalam Penukaran JSON Antara Python dan JavaScript?

Bagaimana Mengendalikan Objek Datetime dalam Penukaran JSON Antara Python dan JavaScript?

Susan Sarandon
Susan Sarandonasal
2024-10-19 17:29:30627semak imbas

How to Handle Datetime Objects in JSON Conversions Between Python and JavaScript?

Penukaran masa tarikh JSON antara Python dan JavaScript

Apabila memindahkan data antara Python dan JavaScript menggunakan JSON, perhatian khusus harus diberikan untuk mengendalikan objek datetime. Artikel ini meneroka pendekatan optimum untuk mensiri objek datetime dalam Python dan menyahsirikannya dalam JavaScript.

Pensirian dalam Python

Gunakan parameter lalai dalam fungsi json.dumps Python untuk mengendalikan pensirilan datetime:

<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)
# Output: '"2010-04-20T20:08:21.634121"' (ISO 8601 format)</code>

Penyahserialisasian dalam JavaScript

Dalam JavaScript, gunakan fungsi JSON.parse dan kendalikan penyahserikatan dengan fungsi pembangkit semula tersuai:

<code class="javascript">let date = JSON.parse(jsonString, (key, value) => {
  if (typeof value === 'string' && value.match(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$/)) {
    return new Date(value);
  }
  return value;
});</code>

Pengendali Lalai Komprehensif dalam Python

Fungsi pengendali lalai yang lebih inklusif boleh ditakrifkan untuk menampung pelbagai jenis data:

<code class="python">import datetime

def handler(obj):
    if hasattr(obj, 'isoformat'):
        return obj.isoformat()
    elif isinstance(obj, datetime.date):
        return str(obj)  # Convert to string for date objects
    elif isinstance(obj, ...):
        return ...  # Handle other types as needed
    else:
        raise TypeError('Cannot serialize object of type {} with value {}'.format(type(obj), repr(obj)))</code>

Pengendali Lalai Yang Diperbaiki

Pengendali yang dipertingkatkan termasuk:

  • Pengendalian kedua-dua objek tarikh dan tarikh
  • Keluaran kedua-dua jenis dan nilai apabila menemui objek yang tidak boleh disiri

Atas ialah kandungan terperinci Bagaimana Mengendalikan Objek Datetime dalam Penukaran 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