Это мой json, может быть тысячи записей данных, которые мы запрашиваем в django rest framework.

{
 "a":1,
 "b":2,
 "c":3,
 .....
}

if request.data['a'] == '':
   return JsonResponse({'error':1})
elif request.data['b'] == '':
   return JsonResponse({'error':1})
elif .....
   .......
else:
   ......

Я хочу проверить данные не пустые, как указано выше, если ... еще. мы можем добавить условие if else, но это не позволяет проверить все данные, если еще, пожалуйста. Подскажите, как лучше всего проверить эту строку кода в python.

1
Sandeep 26 Июн 2019 в 08:29

4 ответа

Лучший ответ

Вы можете использовать data.items() для получения ключа и значения AND, а затем можете обрабатывать в соответствии с вашими требованиями: -

import json
data = { "a":1, "b":2, "c":3  }
for key,value in data.items():  # Here you will get key and value.
    if value == '':
        return JsonResponse({'error':1})
    else:
        pass 
1
heemayl 26 Июн 2019 в 11:24

Вот простое решение

data = {
    "a": 1,
    "b": 2,
    "c": "",
    "d": ""
}

for key in data:
    if bool(data[key]):
        pass
    else:
        return JsonResponse({"error":1})
0
Maulik Patel 26 Июн 2019 в 11:10

Вы можете сделать проверку, используя для цикла

for i in your_dict.keys():
    if your_dict[i] == '':
       do something
    else:
       do other thing
1
Exprator 26 Июн 2019 в 05:32

Если вы используете модуль json для синтаксического анализа текста ответа json с помощью json.loads, то вы можете получить к нему прямой доступ, например, как dict, как показано ниже.

import json
json_data = json.loads(json_text)

for mykey in json_data:
    if json_data[mykey] = "":
        return JsonResponse({'error':1})
    else:
        pass
1
najeem 26 Июн 2019 в 05:48