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

如何通过循环修改JSON数组格式,将API返回数据适配图表需求

数据转换实现方案

以下是符合你给出的键名映射规则的Python实现代码:

def transform_data(raw_data):
    # 构造根节点
    transformed = {
        "name": raw_data["indice"],
        "children": []
    }
    # 遍历处理所有行业板块
    for sector in raw_data["data"]:
        processed_sector = {
            "name": sector["stock_sector_name"],
            "value": sector["sector_score"],
            "children": []
        }
        # 处理板块下的个股数据
        for stock in sector["stocks"]:
            processed_sector["children"].append({
                "name": stock["stock_symbol"],
                "value": stock["stock_score"]
            })
        transformed["children"].append(processed_sector)
    return transformed

# 调用示例
if __name__ == "__main__":
    # 替换为实际从API获取的原始数据
    raw_api_data = {
        "status": "success",
        "from": "DB",
        "indice": "KSE100",
        "data": [
            {
                "stock_sector_name": "Tc",
                "sector_score": "0828",
                "stocks": [
                    {"stock_symbol": "TRG", "stock_score": 44},
                    {"stock_symbol": "SYS", "stock_score": 33}
                ]
            },
            {
                "stock_sector_name": "OIL",
                "sector_score": "0828",
                "stocks": [
                    {"stock_symbol": "FFS", "stock_score": 44},
                    {"stock_symbol": "SMS", "stock_score": 33}
                ]
            }
        ]
    }
    result = transform_data(raw_api_data)
    print(result)

转换逻辑说明

  • 根节点提取原始数据的indice字段作为name,所有板块数据存入children数组
  • 板块层级:stock_sector_name映射为name,sector_score映射为value,个股列表stocks映射为children
  • 个股层级:stock_symbol映射为name,stock_score映射为value
    如果需要和你给出的示例格式一致,把板块层级的value键名改为points即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 12:48:03