如何比较" null" python中的json值

时间:2016-05-03 14:54:05

标签: python

我的一个API提供了json输出

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

我尝试通过以下方式比较此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

1 个答案:

答案 0 :(得分:8)

<强>解决方案:

使用None

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

原始问题:

这个赋值看起来像JSON,但它不是(它是一个 native Python数组,里面有 native Python字典):

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

这不起作用,因为Python中不存在null

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

的方式