Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 如何为pyDocumentDB查询正确提供元组参数_Python 2.7_Azure_Azure Cosmosdb - Fatal编程技术网

Python 2.7 如何为pyDocumentDB查询正确提供元组参数

Python 2.7 如何为pyDocumentDB查询正确提供元组参数,python-2.7,azure,azure-cosmosdb,Python 2.7,Azure,Azure Cosmosdb,我尝试了多种方式发送元组参数,如: {“name”:“@p”,“value”:tuple(['a','b'])} 到查询,其简单如下: 从c中选择*,其中c.p位于@p 我总是得到语法错误或没有结果。 当我将参数从控制台复制到查询时,我得到了预期的结果 帮助?根据REST参考使用REST API查询DocumentDB资源的部分,参数值的要求如下所示 所需参数。指定为名称-值对的参数的JSON数组。参数数组可以包含从零到多个参数。每个参数必须具有以下值:名称:参数的名称。参数名称必须是有效的字符

我尝试了多种方式发送元组参数,如:
{“name”:“@p”,“value”:tuple(['a','b'])}

到查询,其简单如下:

从c中选择*,其中c.p位于@p

我总是得到语法错误或没有结果。 当我将参数从控制台复制到查询时,我得到了预期的结果

帮助?

根据REST参考
使用REST API查询DocumentDB资源的部分,参数值的要求如下所示

所需参数。指定为名称-值对的参数的JSON数组。参数数组可以包含从零到多个参数。每个参数必须具有以下值:名称:参数的名称。参数名称必须是有效的字符串文字,并以“@”开头值:参数的值。可以是任何有效的JSON值(字符串、数字、对象、数组、布尔值或null)。

因此,您可以为DocumentDb查询传递Python元组参数,请使用类似于
['a',b']
的数组而不是
元组(['a',b'])
,或者通过类似于
的代码列表(元组(['a',b'])转换它


更新:


我查看了
pydocumentdb
的源代码,发现DocumentDb查询的请求体中的
参数是使用
json方法序列化的。wrapps
元组
序列化为
列表
。例如,执行代码
json.wrapps(('a','b'))
,然后获得结果
['a','b']
。因此,如果使用
pydocumentdb
,您的案例的唯一方法是直接将元组值嵌入查询字符串。

谢谢您的回答,Peter,我尝试了使用数组。但它似乎不起作用。我使用tuple只是为了得到
的形式,其中c.p在('a,'b','c')
。数组被转换为哪种形式?@Amitbe不幸的是,我试图解决这个问题,但由于我在上面的帖子中更新了内容而失败。