Я хочу от l oop до orderArray
и для каждого order
до find_one_and_update
документа в пн go. Все хорошо .
Проблема в том, что я пытаюсь снова выполнить l oop через itemArray
, и для каждого объекта item
вставить его в массив product
:
for order_dico in response['orderArray']:
order = order_dico['order']
db.Order.find_one_and_update(
{"orderId":order['orderID']},
{
"$set":{
"orderId":order['orderID'],
"product":
[
######### ######### #########
######### here is the error
######### ######### #########
for item in order['itemArray']:
{
"prodId":item['item']['sku'],
"quantity":item['item']['quantity'],
"title":item['item']['title'],
"pic":item['item']['thumbnailURL'],
"price":item['item']['price']
}
]
}
}
)
Я получил эту ошибку:
invalid syntax (<unknown>, line 57)
, и это order
объект:
{
order:{
orderID: 1234,
itemArray: [
item:{
itemID: 709475209,
sku: "1004",
....
}
]
}
}
ПОСЛЕДНЕЕ РЕДАКТИРОВАНИЕ
Решение: сначала создайте пустой массив и добавьте pu sh объекты внутри l oop
for order_dico in response['orderArray']:
order = order_dico['order']
product=[]
for item in order['itemArray']:
product.append({
"prodId":item['item']['sku'],
"quantity":item['item']['quantity'],
"title":item['item']['title'],
"pic":item['item']['thumbnailURL'],
"price":item['item']['price']
})
, а затем добавьте полученный массив в $set
:
"$set":{
...
"product":product
}