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

Python中如何处理API返回结果为列表或字典的情况?

优化API返回数据处理的几种方案

1. 统一格式为列表(最直接的代码优化)

把单个字典格式的books包装成列表,之后只需要写一遍遍历处理逻辑,彻底消除重复代码:

import json

# 假设已完成API响应解析
responseJson = json.loads(response.text)

# 统一转换为列表格式
books = responseJson["books"]
books_list = [books] if isinstance(books, dict) else books

# 后续只针对列表做统一处理,复杂逻辑仅需编写一次
for book in books_list:
    # 这里编写你的复杂处理逻辑,比如字段提取、业务计算等
    print(f"处理书籍: {book['bookname']}")

这里用isinstance替代type()判断更稳妥,它能兼容可能的子类情况,属于Python类型判断的最佳实践。

2. 封装处理函数(进一步解耦代码)

如果处理逻辑较为复杂,可以把格式转换和业务处理封装成独立函数,让代码结构更清晰:

def process_books(books_data):
    # 内部完成格式统一
    books_list = [books_data] if isinstance(books_data, dict) else books_data
    # 执行统一的业务处理
    processed_result = []
    for book in books_list:
        # 这里编写复杂处理逻辑,比如字段映射、数据校验等
        processed_book = {
            "display_name": book["bookname"],
            # 其他处理后的业务字段
        }
        processed_result.append(processed_book)
    return processed_result

# 调用时直接传入解析后的books数据
final_result = process_books(responseJson["books"])

3. 源头优化(最彻底的解决方案)

如果有条件和API开发方沟通,建议统一返回列表格式:哪怕只有一本图书,也返回{"name": "A", "books": [{"bookname": "BookA"}]}。这样前端代码完全无需处理两种格式,从根源上避免了类型判断的麻烦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 20:30:56