Python处理JSON时如何为缺失键设置默认值或过滤无效条目
解决方案
两种实现方式均可满足需求,具体实现如下:
方案1:为缺失的name字段设置默认值
使用Python字典内置的get()方法取值,该方法在键不存在时不会抛出KeyError,而是返回你指定的默认值,示例代码如下:
for k in r: # 第二个参数为name不存在时返回的默认值,可自行修改 course_name = k.get("name", "未命名课程") # id字段若也存在缺失可能,同样可以用get方法设置默认值 course_id = k.get("id", "未知ID") print(f"Name: {course_name}, ID: {course_id}")
方案2:过滤掉无name字段的条目
如果不需要保留缺失name的课程数据,可以在遍历时加判断条件,只处理同时存在name和id的条目:
for k in r: # 只处理同时包含name和id字段的条目 if "name" in k and "id" in k: print(f'Name: {k["name"]}, ID: {k["id"]}')
你也可以用异常捕获的方式实现同等效果:
for k in r: try: print(f'Name: {k["name"]}, ID: {k["id"]}') except KeyError: # 跳过缺少必要字段的条目 continue
内容的提问来源于stack exchange,提问作者James Wright
相关产品推荐
相关产品推荐

