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

如何将JSON对象外部ID移至内部以适配MongoDB存储?

解决JSON格式转换以适配MongoDB导入需求

你可以用Python轻松完成这个格式转换,核心思路是遍历原始JSON的键值对,将外部的ID移到对象内部作为_id字段,具体步骤和代码如下:

转换逻辑

原始JSON是一个大字典,键为球员ID(字符串类型),值为球员数据对象。我们需要:

  • 遍历每个键值对,将字符串ID转为整数(MongoDB支持数字类型的_id)
  • 把_id字段添加到对应的球员数据对象中
  • 将所有处理后的对象收集到列表,方便批量导入MongoDB

代码实现

import json
from pymongo import MongoClient

# 1. 读取原始JSON文件
with open('原始数据.json', 'r', encoding='utf-8') as f:
    raw_data = json.load(f)

# 2. 格式转换
processed_docs = []
for id_str, player_data in raw_data.items():
    # 将字符串ID转为整数,添加为_id字段
    player_data['_id'] = int(id_str)
    processed_docs.append(player_data)

# 可选:保存处理后的JSON到本地文件
with open('处理后数据.json', 'w', encoding='utf-8') as f:
    json.dump(processed_docs, f, indent=2, ensure_ascii=False)

# 3. 批量导入MongoDB
client = MongoClient('mongodb://localhost:27017/')  # 替换成你的MongoDB连接地址
db = client['梦幻足球']  # 数据库名
collection = db['球员']  # 集合名

# 插入所有处理后的文档
collection.insert_many(processed_docs)

说明

  • 处理后的数据结构是一个列表,每个元素是包含_id的球员对象,完全符合MongoDB的文档格式要求
  • 如果你的ID原本就是数字字符串(比如示例中的"2103"),转成整数类型的_id更利于MongoDB的查询和索引
  • 若不需要保存到本地文件,可以跳过保存步骤,直接将processed_docs导入MongoDB

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 18:57:17