我想将一个web爬行器应用程序从.Net移植到Python。它收到类似于以下的json响应:反序列化JSON在Python/Django中的日期字段
[
{
"Code": "AAA",
"Date": "/Date(1481875200000)/",
"Value": 12345.00
}
]
这很容易被Newtonsoft Json反序列化。不过,我似乎无法用Python内置JSON中的解码器进行反序列化这个
from django.db import models
class ItemModel(models.Model):
code = models.CharField(max_length=5)
date = models.DateTimeField()
value = models.IntegerField(default=0)
import json
parsed_data = json.loads(json_data, encoding='utf-8')
new_model=ItemModel()
new_model.code = parsed_data["Code"]
new_model.date = parsed_data["Date"]
new_model.value = parsed_data["Value"]
new_model.save()
这给
ValidationError: [u"'/Date(1481875200000)/' value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ] format."]
编辑:现在我知道这是因为一个日期时间字段
指定的字符串引起的有没有办法尝试解析这个数据到Django模型? - 因为我无法修改json响应。这是做这个的正确方法吗?因为代码似乎直观地适合于我。
当我尝试,它只是解析'“/日期(1481875200000)/”'作为一个字符串,从来没有试图做任何日期解析(正如人们所期望的那样, JSON没有日期数据类型)。所以你正在做一些额外的事情,你不在这里展示。 – RemcoGerlich
嗯有道理,我实际上是试图将此字段设置为Django模型DateTime字段,所以这可能是由设置字符串引起的。我将编辑该问题。 – Sloth