用于对反序列化进行建模的JSON - 仅限自定义字段

时间:2016-05-24 20:23:13

标签: python json django serialization deserialization

我正在开发一个需要从公共API(JSON格式)检索信息的Django应用程序。我有以下型号:

class Person(models.Model):
    first_name = models.CharField(max_length=30)
    last_name = models.CharField(max_length=30)
    address = models.CharField(max_length=30)

让我们说我使用的公共API将返回有关first_name和last_name字段的信息,但此外,它还会返回更多信息,如下所示:

{
"responseInfo": {
    "requestId": "777"
},
"response": {
    "people": [{
        "firstName": "First Name",
        "lastName": "Last Name",
        "coordinates": {
            "address": "Address",
            "email": "test@test.com"
        }
    },
    "firstName": "First Name",
    "lastName": "Last Name",
    "coordinates": {
        "address": "Address",
        "email": "test@test.com"
    },
    {
           ...
    }
  ]
}

}

如何仅反序列化我需要的字段?我尝试使用Django rest框架序列化程序,但是将JSON转换为我的模型永远不会有效,因为我无法弄清楚如何省略我不需要的字段。

1 个答案:

答案 0 :(得分:1)

也许只是反序列化所有内容?

deserialized_data = json.loads(data)
for person in deserialized_data['response']['people']:
    # create Person here 
    # (or save values to some data structure to bulk_create later)