Python如何从字典列表中筛选subject非空数据并保留serial与subject字段
错误原因分析
- 字典构造逻辑错误:原有代码中使用
and连接两个独立字典的写法不符合预期。Python的and逻辑运算会在左侧表达式为真值时直接返回右侧表达式的结果,因此{'serial': dct['serial']} and {'subject': dct['subject']}始终只会返回仅包含subject字段的字典,无法同时保留两个字段。 - 筛选逻辑不完整:原有筛选条件仅排除了
subject为None的情况,示例中第三条数据的subject是空字符串'',也属于需要过滤的无效值。
正确实现代码
Filter = [{'serial': dct['serial'], 'subject': dct['subject']} for dct in jsonA if dct['subject']]
上述代码直接在列表推导式中构造同时包含serial和subject两个键的字典,筛选条件if dct['subject']会自动过滤掉subject为None、空字符串等所有假值的条目,运行后即可得到你需要的结果。
内容的提问来源于stack exchange,提问作者WEI ZHUANG GOH
相关产品推荐
相关产品推荐

