用于 python cosmosdb 属性错误的 Azure sdk

问题描述

我到处寻找,但找不到解决此问题的方法

我有一个 azure 数据浏览器正在运行,我想将查询结果保存到一个 cosmodb 表中。

在官方文档中,他们建议使用此代码

from azure.cosmos import CosmosClient
import os

url = os.environ['ACCOUNT_URI']
key = os.environ['ACCOUNT_KEY']
client = CosmosClient(url,credential=key)
database_name = 'testDatabase'
database = client.get_database_client(database_name)
container_name = 'products'
container = database.get_container_client(container_name)

for i in range(1,10):
    container.upsert_item({
            'id': 'item{0}'.format(i),'productName': 'Widget','productModel': 'Model {0}'.format(i)
        }
    )

我遵循了该代码并按如下方式实现了它:

url = 'url'
key = {'masterkey': 'my-key'}
client = CosmosClient(url,key)
database_name = 'My-database'
database = client.get_database_client(database_name)
container_name = 'My-table'
container = database.get_container_client(container_name)

for item in df:
    container.upsert_item(item)

df 是我的查询,我正在尝试将该结果推送到我的容器。

但是当我运行我的 python 代码时,我收到以下错误

Traceback (most recent call last):
  File "query.py",line 68,in <module>
    database = client.get_database_client(database_name)
AttributeError: 'CosmosClient' object has no attribute 'get_database_client'

有什么建议为什么会这样吗?

解决方法

找到解决方案。

在第一个配置中,我运行命令 pip install azure-cosmos

但这不起作用,所以我不得不关注他们建议使用 --pre 运行相同命令的主题,因此完整的 pip 命令将是 pip install --pre azure-cosmos,我天真地认为该命令将覆盖我现有的安装,但没有..我不得不卸载以前的模块

pip uninstall azure-cosmos

然后安装--pre。

现在可以了。