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