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

Python如何为JSON数组中的每个对象统一添加指定键值对

解决方案

你不需要改动接口返回的外层元字段,只需要遍历detailsList数组下的每一个条目对象,给每个对象追加game: "first"键值对就可以达到预期效果,下面是两种最常用的技术栈实现:

  • Node.js/JavaScript 场景(适配大部分前端、Node后端请求接口+写MongoDB的流程)
    优先用无副作用的map写法,不会污染原始接口返回数据:
    // rawApiResp 是接口返回的原始JSON对象
    const dataToStore = {
      ...rawApiResp,
      detailsList: rawApiResp.detailsList.map(entry => ({
        ...entry,
        game: 'first'
      }))
    };
    // 后续直接把dataToStore插入MongoDB即可
    
    如果你不需要保留原始数据,也可以直接遍历修改原对象,写法更简洁:
    rawApiResp.detailsList.forEach(entry => {
      entry.game = 'first';
    });
    
  • Python 场景
    逻辑完全一致,直接遍历字典列表追加字段即可:
    # raw_api_resp 是接口返回的原始字典
    for entry in raw_api_resp["detailsList"]:
        entry["game"] = "first"
    # 处理完成后直接写入MongoDB
    
优化参考

如果后续需要处理其他游戏类型的数据(比如第二场、第三场),可以把追加标签的逻辑抽成通用函数,避免重复写代码:

// Node.js 通用处理函数示例
function tagGameData(rawResp, gameType) {
  return {
    ...rawResp,
    detailsList: rawResp.detailsList.map(entry => ({...entry, game: gameType}))
  };
}
// 调用时传入对应标签即可,逻辑可以复用
const firstGame = tagGameData(await fetchGame(1), 'first');
const secondGame = tagGameData(await fetchGame(2), 'second');

避坑提醒:你现在追加的是字符串类型的值,不存在对象引用问题,直接赋值就可以。不要把同一个外部声明的对象反复赋值给不同数组元素,否则后续修改其中一个条目时会连带修改所有条目。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 04:57:10