這是我的第一篇文章,嘗試掌握 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 分。
好吧,我希望答案很簡單,非常感謝已經考慮過這個問題!!
uj5u.com熱心網友回復:
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})
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/363327.html
