【发布时间】:2017-03-02 10:47:19
【问题描述】:
我正在尝试将网络爬虫应用程序从 .Net 移植到 Python。它接收类似于以下的 json 响应:
[
{
"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)/' 值无效 格式。必须是 YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ] 格式。"]
编辑:现在我知道这是因为将字符串分配给日期时间字段
有没有办法尝试将这些数据解析为 django 模型? - 因为我无法修改 json 响应。这也是正确的方法吗?因为代码在我看来直觉上是不确定的。
【问题讨论】:
-
当我尝试这样做时,它只是将
"/Date(1481875200000)/"解析为一个字符串,并且从不尝试进行任何日期解析(正如人们所期望的那样,JSON 没有日期数据类型)。所以你正在做一些你没有在这里展示的额外事情。 -
嗯,有道理,我实际上是在尝试将此字段设置为 Django 模型 DateTime 字段,所以这可能是由为其设置字符串引起的。我将编辑问题。