在json之后删除双引号

时间:2015-06-05 10:28:03

标签: python

以下是通过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)

3 个答案:

答案 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
)