You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python 3.9过滤MS Graph API返回JSON中的null值

Python 3.9 过滤JSON中null值的方法

你可以通过递归函数处理JSON反序列化后的Python对象,统一移除所有值为None(JSON中null反序列化后的对应类型)的字段,支持嵌套的字典、列表结构,完全兼容Python 3.9版本。

完整示例代码

import json

def filter_null(obj):
    if isinstance(obj, dict):
        # 过滤字典中值为None的键,递归处理剩余值
        return {k: filter_null(v) for k, v in obj.items() if v is not None}
    elif isinstance(obj, list):
        # 递归处理列表中每个元素
        return [filter_null(item) for item in obj]
    else:
        return obj

# 替换为你从MS Graph API拿到的原始JSON字符串
raw_json = '''
[
  {
    "audio": null,
    "package": null,
    "pendingOperations": null,
    "photo": null,
    "webUrl": null,
    "createdByUser": null,
    "lastModifiedByUser": null,
    "id": "0145415166458484754....",
    "@odata.type": "#microsoft.graph.driveItem"
  }
]
'''

# 反序列化、过滤、再转回JSON
data = json.loads(raw_json)
filtered_data = filter_null(data)
result = json.dumps(filtered_data, indent=2, ensure_ascii=False)
print(result)

输出结果

[
  {
    "id": "0145415166458484754....",
    "@odata.type": "#microsoft.graph.driveItem"
  }
]

补充说明

  • 如果你通过requests库调用接口,可直接用response.json()获取反序列化后的对象,无需手动执行json.loads
  • 递归逻辑支持任意层级的嵌套结构,嵌套字典、列表中的null值都会被自动过滤
  • 代码未使用Python 3.9以上版本的特性,可直接运行

内容的提问来源于stack exchange,提问作者ChsharpNewbie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 22:09:04