có cách nào thanh lịch để hỗ trợ datetime mã hóa JSON JSON không? một số mô-đun bên thứ 3 hoặc dễ hack?Bộ mã hóa JSON Python để hỗ trợ datetime?
Tôi đang sử dụng trình bao bọc cơ sở dữ liệu của cơn lốc xoáy để tìm nạp một số raw từ db để tạo ra một json. Kết quả truy vấn bao gồm cột dấu thời gian MySQL thông thường.
Thật khó chịu khi bộ mã hóa json mặc định của Python không hỗ trợ kiểu datetime của nó, điều này rất phổ biến trong tất cả các loại truy vấn cơ sở dữ liệu.
Tôi không muốn sửa đổi bộ mã hóa json của riêng Python. bất kỳ thực hành tốt nào? Cảm ơn rất nhiều!
ps: Tôi tìm thấy một bẩn hack bằng cách sửa đổi Python JSON phương pháp mã hóa mặc định:
Thay đổi:
def default(self, o):
raise TypeError(repr(o) + " is not JSON serializable")
Để:
def default(self, o):
from datetime import date
from datetime import datetime
if isinstance(o, datetime):
return o.isoformat()
elif isinstance(o, date):
return o.isoformat()
else:
raise TypeError(repr(o) + " is not JSON serializable")
tốt, nó sẽ là một giải pháp tạm thời chỉ dành cho môi trường dev.
Nhưng đối với môi trường sản xuất hoặc giải pháp lâu dài, điều này khá xấu xí và tôi phải thực hiện sửa đổi mỗi khi triển khai lên máy chủ mới.
Có cách nào tốt hơn không? Tôi không muốn sửa đổi mã Python, không phải mã nguồn Tornado. Có điều gì tôi có thể làm với mã dự án của riêng tôi để thực hiện điều này không? tốt nhất là ở một tốc độ.
Cảm ơn rất nhiều!
Xem: http://stackoverflow.com/questions/455580/json-datetime-between-python-and-javascript –
vấn đề với phương pháp phân lớp, là nó không cho tất cả các sử dụng khác của mã hóa json, chẳng hạn như django đơn giản, "dumpdata" – mcr