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

如何用Python读取Cosmos DB容器JSON文件并解决资源找不到错误

解决CosmosResourceNotFoundError及导出修改JSON的方案

错误原因排查

CosmosResourceNotFoundError通常由以下情况引发:

  • 数据库/容器名称与Cosmos DB中实际资源不匹配(资源名称区分大小写)
  • 账户端点或密钥输入错误
  • 当前只读权限未覆盖目标数据库/容器
  • 查询条件对应的资源实际不存在

分步解决

1. 核对资源名称

从你提供的Cosmos DB截图确认:数据库名称为DATA,容器名称为TenantInfo,需确保代码中名称完全一致,注意大小写严格匹配。

2. 验证凭证与权限

  • 确认端点是Cosmos DB账户的完整URL(格式示例:https://<账户名>.documents.azure.com:443/)
  • 确认只读密钥已授予DATA数据库和TenantInfo容器的读取权限
  • 检查密钥是否输入正确,未过期

3. 完整代码(查询+修改+保存JSON)

以下是包含数据查询、修改并导出为JSON文件的可运行代码:

from azure.cosmos import CosmosClient
import json

# 填入你的Cosmos DB凭证
endpoint = "你的Cosmos DB端点"
key = "你的只读密钥"

client = CosmosClient(endpoint, key)
database_name = "DATA"
container_name = "TenantInfo"

try:
    # 获取数据库和容器客户端
    database = client.get_database_client(database_name)
    container = database.get_container_client(container_name)
    
    # 执行查询
    query = "SELECT * FROM c WHERE c.partitionKey = 'UPITT' and c.id = 'Org.OrgUnit.UPITT'"
    items = list(container.query_items(query, enable_cross_partition_query=True))
    
    if not items:
        print("未查询到匹配的数据")
    else:
        # 示例:修改数据字段(根据你的需求调整)
        for item in items:
            item["last_modified"] = "2024-05-20"
            # 其他修改逻辑...
        
        # 保存为JSON文件
        with open("modified_tenant_data.json", "w", encoding="utf-8") as f:
            json.dump(items, f, indent=4, ensure_ascii=False)
        print("数据已修改并保存为modified_tenant_data.json")

except Exception as e:
    print(f"错误详情: {str(e)}")

额外建议

  • 若查询无结果,可先执行SELECT TOP 10 * FROM c验证是否能正常读取容器数据
  • 跨分区查询依赖容器的索引策略,默认索引策略支持此类查询,无需额外配置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 03:07:44