python中的for循環迭代以獲取嵌套json中的新值

星巴克

這是我的第一篇文章,嘗試掌握 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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在循環完成後在 For 循環中獲取 json JS

循環遍歷一個列表並在 python 中獲取一個具有相同值的起始索引的新列表

在 JavaScript 中的每個循環中,如何通過索引獲取地圖值?

在 Postgres 中從 JSON 獲取嵌套對象值

如何在對象的for循環中獲取不被覆蓋的鍵和值?

在 SQL 中無需循環即可獲取連續的行值

如何使用javascript獲取for循環中的最後一個值?

JavaScript 在 onSubmit 中的循環內獲取

獲取for循環中數字的總和

如何在視圖中使用 ASP.NET Core 獲取 @foreach 循環中的迭代數

Python Selenium 無法從循環中獲取結果

Python Selenium 我只從循環中獲取第一個元素

循環遍歷列表以獲取python中給定範圍的最大總和

在 C 編程中 - 如何在此 if 語句中斷循環之後獲取新的 scanf 輸入

如何獲取循環中每一行的Jpicker(顏色選擇器)的值

在布爾列表中獲取 True 值的範圍(開始和結束)(不使用 for 循環)

如何在角度 11 的同一組件中循環獲取所選項目值?

如何調用嵌套循環中的值?

Python 中的循環 Json ChainMap

循環遍歷 JSON 數組以獲取隨機值(Javascript)

Tkinter:在 for 循環中從標籤中獲取變量

迭代嵌套 json 中的所有值

從 SwiftUI 中的環境值獲取綁定

如何減少python中嵌套循環的時間

在 python 中嵌套了 N 個 for 循環

Python Pandas:如何在多個循環中獲得每個峰值的最大值

使用python從迭代JSON中獲取數據的最有效方法?

從嵌套字典中獲取非等於值

如何在laravel的for循環中獲取表單的ID?