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

如何将MongoDB文档记录映射为指定格式的Python字典

解决MongoDB文档转特定格式Python字典的问题

没问题,我来帮你搞定这个循环处理的步骤!核心思路就是遍历从MongoDB取出的每一条文档,提取需要的字段,然后按照指定的格式拼接键名、赋值对应的值。

完整实现步骤(含MongoDB连接)

首先确保你已经安装了pymongo库,如果没装的话先执行:

pip install pymongo

然后是完整的Python代码:

from pymongo import MongoClient

# 1. 连接MongoDB(根据你的实际环境调整,比如有用户名密码、远程服务器的话要修改连接字符串)
client = MongoClient("mongodb://localhost:27017/")
# 替换成你的数据库名和集合名
db = client["your_db_name"]
collection = db["your_collection_name"]

# 2. 初始化用于存储结果的字典
target_dict = {}

# 3. 遍历集合中的所有文档
for doc in collection.find():
    # 用get方法提取字段,避免文档缺失字段时抛出KeyError
    mapping_name = doc.get("mappingName")
    code = doc.get("code")
    label = doc.get("label")
    
    # 确保三个字段都存在,再添加到结果字典
    if mapping_name and code and label:
        # 按照指定格式拼接键名
        key = f"{mapping_name}|{code}"
        target_dict[key] = label

# 查看最终结果
print(target_dict)

如果已经拿到文档列表(无需再连MongoDB)

要是你已经把MongoDB的文档取到本地列表里了,直接处理列表就行:

# 假设这是你从MongoDB获取到的文档列表
docs = [
    {"_id" : "LAC1397", "code" : "MIS", "label" : "Marshall Islands", "mappingName" : "RESIDENTIAL_COUNTRY"},
    {"_id" : "LAC1852", "code" : "COP", "label" : "Colombian peso", "mappingName" : "FOREIGN_CURRENCY_CODE"}
]

target_dict = {}
for doc in docs:
    # 先检查必要字段是否都存在
    if all(field in doc for field in ["mappingName", "code", "label"]):
        key = f"{doc['mappingName']}|{doc['code']}"
        target_dict[key] = doc["label"]

# 输出结果:{'RESIDENTIAL_COUNTRY|MIS': 'Marshall Islands', 'FOREIGN_CURRENCY_CODE|COP': 'Colombian peso'}
print(target_dict)

关键细节说明

  • 用doc.get()而非直接doc["key"]:可以避免部分文档缺失字段时触发异常,让代码更健壮
  • 字段存在性检查:确保只有完整的数据才会被加入结果字典,避免生成无效的键值对
  • f-string拼接键名:语法简洁直观,比字符串拼接更高效易读

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 09:03:57