我正在开发一个需要从公共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转换为我的模型永远不会有效,因为我无法弄清楚如何省略我不需要的字段。
答案 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)