Мне нужно перейти от AngularJS к python к объекту JSON. JSON будет:Как передать массив от AngularJS до python и хранить?
{ "name": "Bob",
"address": "Springfield",
"cars": [
{ "model": "Renault C15", "year": "1965" },
...
{ "model": "Ford Ka", "year": "1998" } ]
}
Это фрагмент моего контроллера AngularJS. Все параметры вводятся из HTML формы (в данном случае массив «автомобили» были созданы вручную, чтобы показать вам, как я должен это запрограммировано)
$scope.cars= [];
var car1 = { model: 'Renault C15', year: '1965' };
var car2 = { model: 'Ford Ka', year: '1998' };
$scope.cars.push(car1);
$scope.cars.push(car2);
...
$scope.newForm = function() {
var dataToSend= {
name: $scope.name,
address: $scope.address,
cars: $scope.cars
};
$http({
method: 'POST',
url: '/myUrl/something',
data: $.param(dataToSend),
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
});
...
}
Если я осмотреть запрос POST, я вижу следующие параметры :
name Bob
address Springfield
cars[0][model] Renault C15
cars[0][year] 1965
cars[1][model] Ford Ka
cars[1][year] 1998
Первоначально я не знаю, сколько предметов будет иметь «автомобили». Теперь это заголовок функции python. Я знаю, как хранить обычные аргументы, но я не знаю, как сделать то же самое с массивом «автомобили». Я бы сохранил его как список или словарь python.
def something(self, **params):
...
name=params['name']
address=params['address']
...
Как хранить массив?
Почему вы используете 'application/x-www-form-urlencoded'? –
Похоже, вы пытаетесь отправить свой JSON в качестве параметров, верно? Почему бы просто не отправить его вместо данных? Затем вы можете использовать json import, чтобы превратить его в словарь или что хотите в этот момент. –