python - 从循环更新对象数组
问题描述
我想遍历orderArray
并为每个在 Mongoorder
中记录。一切都好。find_one_and_update
问题是当我尝试再次循环时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",
....
}
]
}
}
稍后编辑
解决方法:先创建一个空数组,将对象压入循环内
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
}
解决方案
推荐阅读
- azure - 使用 diskName 和 diskURI 创建 PersistentVolume
- javascript - 根据JSDoc错误使用函数时如何显示警告?
- php - 如何在codeigniter中的特定列视图中显示数据库结果
- android - 布局内容未显示
- sql - ms访问日期字段之间的sql查询条件
- javascript - jQuery ajax select onChange 使用数据库更新输入字段值
- java - 长按文本视图提示时应用程序崩溃
- c# - c# 从另一个类/事件更新 WinForm GUI 文本框
- php - 如何使用 http 用户代理从浏览器获取语言显示名称而不是 ISO 语言代码?
- java - 从文本字段更新 Java 变量只能工作一次