如何(从对象的json数组迭代Python)

时间:2019-03-21 05:37:26

标签: python json python-3.x loops object

从对象数组进行迭代并使用该数据更新数据库表中选定行的最佳方法是什么?

我想从id = tasklist的数据库中更新数据,

id从下面提供的json中进行设置 具有该ID的json中的attached_document_ins.is_viewed = checked值。

例如,如果id == 35attached_document_ins.is_viewed = True导致ID 35的检查值为True。

最好的算法是什么?

我在下面提供了我的代码。

#Code

def post(self, request):
        data = request.data
        print("Response Data :" , data)
        try:


            attached_document_ins = DocumentTask.objects.filter(id=tasklist_id)
            for attached_document_ins in attached_document_ins:
                attached_document_ins.is_viewed = True
            attached_document_ins.save()
            return Response("Success", status=status.HTTP_200_OK)
        except DocumentTask.DoesNotExist:
            return Response("Failed.", status=status.HTTP_400_BAD_REQUEST)

Json(数据)

{
   'tasklist':[
      {
         'files':[

         ],
         'checked':True,
         'company':6,
         'task':'s',
         'applicant':159,
         'id':35
      },
      {
         'files':[

         ],
         'checked':True,
         'company':6,
         'task':'ss',
         'applicant':159,
         'id':36
      },
      {
         'files':[

         ],
         'checked':True,
         'company':6,
         'task':'sss',
         'applicant':159,
         'id':37
      }
   ]
}

1 个答案:

答案 0 :(得分:1)

这是您可以做到的一种方法:

for task in data['tasklist']:
    if task['checked']:
        document = DocumentTask.objects.get(id=task['id'])
        document.is_viewed = True
        document.save()