我的一个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
答案 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