jsonA =
[ {'id': 'xxx1', 'serial': 'BPCE-RNHC-25G8', 'model': 'AlertTrace', 'subject': 'EMP004'},
{'id': 'xxx2', 'serial': 'XX-WWW-2XSFC', 'model': 'AlertTrace', 'subject': 'EMP005'},
{'id': 'xxx3', 'serial': 'VVV-ASD-CDSG', 'model': 'AlertTrace', 'subject': ''} ]
我有3个json数据,我想检索subject
不为空的数据。接下来,我应该能够过滤只有两个键的结果,即serial
和subject
。
预期输出:
jsonA =
[ {'serial': 'BPCE-RNHC-25G8', 'subject': 'EMP004'},
{'serial': 'XX-WWW-2XSFC', 'subject': 'EMP005'} ]
我尝试了这个代码:(但输出只显示了我的主题。我需要从序列和主题的值)
Filter = [{'serial': dct['serial']} and {'subject': dct['subject']} for dct in jsonA if (dct['subject']) != None]
您可以尝试使用以下示例代码:
a_dict = {'color': 'blue', 'fruit': 'apple', 'pet': 'dog'}
for key, value in a_dict.items():
print(key, '->', value)
在你的代码中,你可以尝试这样做:
for key, value in jsonA.items():
if value != None:
回车键
但我不完全确定:)
Just do:
res = [{'serial': dct['serial'], 'subject': dct['subject']} for dct in jsonA if dct['subject']]
print(res)
[{'serial': 'BPCE-RNHC-25G8', 'subject': 'EMP004'}, {'serial': 'XX-WWW-2XSFC', 'subject': 'EMP005'}]
在Python中,None
和""
的真值是False
,所以你可以在条件中直接使用dct['subject']
。要创建字典,请参考文档。