使用javascript日期将datetime.date序列化为JSON

使用javascript日期将datetime.date序列化为JSON,javascript,python,json,datetime,serialization,Javascript,Python,Json,Datetime,Serialization,如何将包含datetime.date对象的python列表序列化为javascriptdate对象的JSON数组?例如: lst = [datetime.date(2013, 12, 30), datetime.date(2013, 12, 31)] print serialize(lst) # should print "[new Date(2013, 12, 30), new Date(2013, 12, 31)]" 我尝试过使用自定义处理程序转储json,但处理程序只能返回可序列化的对象

如何将包含
datetime.date
对象的python列表序列化为javascript
date
对象的JSON数组?例如:

lst = [datetime.date(2013, 12, 30), datetime.date(2013, 12, 31)]
print serialize(lst)
# should print "[new Date(2013, 12, 30), new Date(2013, 12, 31)]"

我尝试过使用自定义处理程序转储json,但处理程序只能返回可序列化的对象,而不能返回实际的json语法。

JavaScript
Date
对象被json序列化为字符串。但是,您可以从这个序列化字符串构造一个日期对象。python
datetime.date
类提供的最接近的字符串似乎是
isoformat

lst = [datetime.date(2013, 12, 30).isoformat(),
    datetime.date(2013, 12, 31).isoformat()]
在JavaScript方面,这些将只是类似于
“2013-12-31”
的字符串。您可以从中构造日期对象--
新日期(“2013-12-30”)
。它可能看起来像:

lst = JSON.parse(lstJson);
lst.forEach(function (date) {
    var date = new Date(date);
});

您不能有“…JavaScript
Date
对象的JSON数组”。您可以有JSON数组,也可以有包含
Date
对象的JavaScript数组。!=JavaScript和JSON没有任何日期的概念。@t.J.Crowder感谢您的澄清,那么我怎样才能拥有一个带有日期对象的JavaScript数组呢?基本上,使用
.isoformat()
<代码>日期类型在JSON中不受支持。@zsong谢谢。数组是否为JSON并不重要,javascript也可以。如果我使用.isoformat,我将不得不在javascript中对数组进行另一次传递,以将值转换为
Date
对象,这是我不愿意做的事情。请注意-在javascript中使用
new Date(…)
时,月份范围为0-11。在python中它们是1-12。谢谢,但是有没有一种方法可以直接在python中完成所有这些工作?@Tzach做什么?不能将JavaScript日期对象本身存储在JSON中。它们被序列化为具有代表性的字符串。我并不在乎数组是JSON还是javascript,我所需要的只是一个与问题中的字符串类似的输出字符串,这样我就可以将其嵌入到现有的JS代码中,而无需在JS中迭代数组。