我有一堆存储在Azure的CosmosDB数据库中的JSON文件。我还有一个读取JSON文件的python程序。我想从python
在Azure的查询资源管理器上运行查询 SELECT VALUE Block
FROM c
JOIN Block IN c.radar50p01
到目前为止,我在python程序中的内容如下:
def getCosmosDBClient():
# Initialize the Python DocumentDB client
client = document_client.DocumentClient(Constants.URL, {'masterKey': Constants.KEY})
return client
def getCosmosDBColl_link():
client = getCosmosDBClient()
db_id = Constants.RADAR_DATABASE_NAME
db_query = "select * from r where r.id = '{0}'".format(db_id)
db = list(client.QueryDatabases(db_query))[0]
db_link = db['_self']
coll_id = Constants.RADAR_COLL_NAME
coll_query = "select * from r where r.id = '{0}'".format(coll_id)
coll = list(client.QueryCollections(db_link, coll_query))
if coll:
coll = coll[0]
else:
raise ValueError("Collection not found in database.")
coll_link = coll['_self']
docs = client.ReadDocuments(coll_link)
return docs
那么有没有办法在python中使用上面的查询,所以我得到了我需要的具体内容?
感谢。
答案 0 :(得分:0)
如果您的查询已在Azure门户的查询资源管理器中成功运行,您只需使用client.QueryDocuments(collection_link, query)
方法进行查询,如下面here中的代码。
使用SQL
执行查询# Query them in SQL query = { 'query': 'SELECT * FROM server s' } options = {} options['enableCrossPartitionQuery'] = True options['maxItemCount'] = 2 result_iterable = client.QueryDocuments(collection['_self'], query, options) results = list(result_iterable); print(results)
希望它有所帮助。如有任何疑虑,请随时告诉我。