以下是通过JSON的字典的摘录。
["1", "ABC", "new Date(2015/01/01)", "new Date(2015/08/07)"], etc
有没有办法只删除以下日期的双引号:
["1", "ABC", new Date(2015/01/01), new Date(2015/08/07)], etc
修改
dataset = []
for service in ServiceData:
datestart = 'new Date('+service.DateCommence+')'
dateend = 'new Date('+service.DateDiscontinued+')'
dataset.append([
"{}".format(i),
service.Title,
datestart,
dateend,
])
i = i + 1
return json.dumps(dataset)
答案 0 :(得分:0)
如果您想将日期放入JSON,请使用标准ISO 8601:
["1", "ABC", "2015-01-01", "2015-08-07)"]
如果service.DateCommence
生成的日期为2015/08/07
,则应将此输入转换为ISO日期:
datestart = service.DateCommence.replace("/", "-")
每个使用JSON的客户端或库都应该能够理解这种日期格式。
答案 1 :(得分:0)
首先将后端代码更改为
["1", "ABC", "new Date(2015/01/01)", "new Date(2015/08/07)"]
这里我将数据更改为日期
好吧,我不认为这是最好的方法,但你不需要在后端更改任何东西,其中一个可以工作的黑客就是这个,在前端,更改js代码并编辑json你通过迭代从后端获得,再次这不是最好的方法。for(index in data){
if(data[index].startsWith("new Date")){
data[index]=eval(data[index]);
}
}
如果您知道确切的索引,只需执行
data[2] = eval(data[2]);
data[3] = eval(data[3]);
假设索引2和3具有datetype对象字符串。 还可以在完整列表中运行这些步骤。 欢呼声
答案 2 :(得分:0)
您可以避免这种情况,因为Google图表提供了提供string representation of a date的方法。这样做的好处是允许您使用有效的JSON,这将使使用json.dumps更加容易:
在文档中,字符串具有以下格式:
"Date(Year, Month, Day, Hours, Minutes, Seconds, Milliseconds)"
您还必须将列指定为“日期”类型,以便正确解释该值。
在Python中,您可以生成这样的字符串:
"Date({year}, {month}, {day}, {hour}, {minute}, {second})".format(
year=date.year,
month=date.month - 1,
day=date.day,
hour=date.hour,
minute=date.minute,
second=date.second
)