2016-05-03 3 views
0

Один из моих API для выдачи выходного JSonКак сравнить «нулевые» значения JSON в Python

{"student":{"id": null}} 

Я попытался сравнивая это нулевое значение следующим образом, но ни один не работает

if(student['id'] == "null") 
if(student['id'] == None) 
if(student['id'] == null) 

Что является правильным способом сравнения нулевых значений?

Полный код:

students = [{"id":null},{"id":1},{"id":3}] 
for student in students: 
    if(student['id'] is not None): 
     print("found student" + str(student['id'])) 
     break 

ответ

5

Решение:

Использование None

>>> import json 
>>> b = json.loads('{"student":{"id": null}}') 
>>> b['student']['id'] is None 
True 

Оригинал Проблема:

Это задание выглядит Лик е JSON, но это не (это Python массив родной с нативных словарей Python внутри):

students = [{"id":null},{"id":1},{"id":3}] 

Это не будет работать, потому что null не существует в Python.

JSON данные будут получены в строке:

students = '[{"id":null},{"id":1},{"id":3}]' 

И вы должны разобрать его с помощью json module:

>>> import json 
>>> parsed_students = json.loads(students) 
>>> print(parsed_students) 
[{'id': None}, {'id': 1}, {'id': 3}] 

Обратите внимание, как null стал None

+0

хорошо я попытался это 'если (student ['id'] не является None): print ("not null") ', но он не работает. Не знаю, почему. – aaj

+0

Какая ошибка вы получаете? Что такое «студент» в вашем объеме? Вставьте еще немного кода перед этим, если здесь. –

+0

Добавлен полный код. – aaj

Смежные вопросы