這是我的第一篇文章,嘗試掌握 Python 的竅門來設置 mongodb 的 api 後端(通過 mongoengine)。
我有這部分代碼:
def post(self) -> Response:
data = request.get_json()
post_list = Lists(**data).save()
output = {'id': str(post_list.id)}
return jsonify({'result': output})
其中我從前端收到一個 json,存儲到數據庫中,一切正常。這是原始 json:
{
"listTitle":"hjhk",
"listId":"873",
"listCreator":"lotte",
"sublist":[
{
"subListCreator":"lotte",
"item":[
{
"itemTitle":"njkn",
"itemContext":"None",
},
{
"itemTitle":"njk",
"itemContext":"None"
},
{
"itemTitle":"vbvb",
"itemContext":"None"
}
]
}
]
}
但是,我正在嘗試向結構中的最低數組添加一個 id 字段,以指示該項目在子列表中的位置(1、2、3 等)。為此,我正在尋找合適的 for 循環。嘗試了很多東西,這是我到目前為止最遠的:
def post(self) -> Response:
data = request.get_json()
for sublist in data['sublist']:
for item in sublist['item']:
if 'positionId' not in item:
item['positionId'] = 1
item['positionId'] += 1
post_list = Lists(**data).save()
output = {'id': str(post_list.id)}
return jsonify({'result': output})
導致:
{
"listTitle":"dasdsa",
"listId":"873",
"listCreator":"lotte",
"sublist":[
{
"subListCreator":"lotte",
"item":[
{
"itemTitle":"dasd",
"itemContext":"None",
"positionId":1
},
{
"itemTitle":"dsad",
"itemContext":"None",
"positionId":1
},
{
"itemTitle":"dsadsa",
"itemContext":"None",
"positionId":2
}
]
}
]
}
我知道我做錯了,我也用谷歌搜索了很多。找到了很多相關的東西,但對我來說沒有任何意義。希望有人能夠幫助我:)
此外,我還想添加一個與 positionId 系統類似的自動計分字段。只有在這裡,第一個值是 3,接下來是 2,後面的所有值都需要有 1 分。
好吧,我希望答案很簡單,非常感謝已經考慮過這個問題!!
python 中的 enumerate() 函數應該對你有用:
def post(self) -> Response:
data = request.get_json()
for sublist in data['sublist']:
for i,item in enumerate(sublist['item']):
item['positionId'] = i
post_list = Lists(**data).save()
output = {'id': str(post_list.id)}
return jsonify({'result': output})
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句