2016-05-03 5 views
0

Einer meiner APIs vergleichen geben einem json AusgangWie "null" json Werte in Python

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

ich auf folgenden Wegen dieses Nullwert versucht zu vergleichen, aber keiner arbeitet

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

Was ist der richtige Weg, um Nullwerte zu vergleichen?

Voll Code:

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

Antwort

5

Lösung:

Verwenden None

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

Original-Problem:

Diese Zuordnung sieht lik e JSON, aber es ist nicht (es ist ein nativen Python-Array mit nativen Python Wörterbücher innen):

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

Das wird nicht funktionieren, weil null in Python nicht existiert.

JSON-Daten würden in einem String kommen:

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

Und Sie haben es zu analysieren, die mit json module:

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

Beachten Sie, wie null wurde None

+0

gut habe ich versucht, diese 'wenn (Student ['id'] ist nicht None): print ("not null") 'aber es funktioniert nicht. Nicht sicher warum. – aaj

+0

Welchen Fehler bekommen Sie? Was ist "Student" in Ihrem Bereich? Fügen Sie etwas mehr Code ein, bevor Sie die Anweisung hier eingeben. –

+0

Der vollständige Code wurde hinzugefügt. – aaj