Джанго 1,9 Python3.5Обработка JSON ответ с Джанго
Я использую tastypie потреблять от внешнего API
Я создаю класс для обработки ответа JSon от RESTful API. Я знаю, что типы данных возвращаются из api, но не знают, как объявить некоторые из них.
Это, как я объявляю их в Golang
PosterPath string `json:"poster_path"`
Adult bool `json:"adult"`
Overview string `json:"overview"`
ReleaseDate string `json:"release_date"`
GenreIds []int `json:"genre_ids"`
Id int `json:"id"`
OriginalTitle string `json:"original_title"`
OriginalLanguage string `json:"original_language"`
Title string `json:"title"`
BackdropPath string `json:"backdrop_path"`
Popularity float64 `json:"popularity"`
VoteCount int `json:"vote_count"`
Video bool `json:"video"`
VoteAverage float64 `json:"vote_average"`
В моем понимании это, как я должен объявить их DJjango
class Movies(Resource):
PosterPath = fields.URLField(attribute='poster_path')
Adult = fields.BooleanField(attribute='adult')
Overview = fields.CharField(attribute='overview')
ReleaseDate = fields.CharField(attribute='release_date')
GenreIds = fields.**Array of Ints**(attribute='genre_ids')
Id = fields.IntegerField(attribute='id')
OriginalTitle = fields.CharField(attribute='original_title')
OriginalLanguage = fields.CharField(attribute='original_language')
Title = fields.CharField(attribute='title')
BackdropPath = fields.URLField(attribute='backdrop_path')
Popularity = fields.DecimalField(attribute='popularity')
VoteCount = fields.IntegerField(attribute='vote_count')
Video = fields.BooleanField(attribute='video')
VoteAverage = fields.DecimalField(attribute='vote_average')
Это поле
GenreIds = fields.**Array of Ints**(attribute='genre_ids')
Это массив ints. Каков правильный способ обработки json этого типа? Похоже, что это,
"genre_ids": [
18,
10402
],
Я использую tastypie. Я не строю модель. Я использую внешний api для ответа json. Также имеет ли размер массива ArrayField? Нет ли способа сделать ListField? – wuno
Да, ArrayField динамичен. Инициализируйте как список 'times = ArrayField (models.DateTimeField(), default = list)' и добавьте к нему, как обычно. – Ben