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不幸的是,我试图解决这个问题,但由于我在上面的帖子中更新了内容而失败。