Python elasticsearch-dsl 多字段排序

JCh*_*hao 2 python elasticsearch-dsl

我正在尝试使用 elasticsearch-dsl 形成用于排序的命令。但是我无法以正确的格式传递变量。

格式应该是

s=Search()
s = s.sort({"time":{"order":"asc"}}, {"anoter_field":{"order":"desc"}})
s.execute()
Run Code Online (Sandbox Code Playgroud)

问题是我试图把它{"time":{"order":"asc"}}, {"anoter_field":{"order":"desc"}}作为一个变量,但我似乎无法以正确的语法得到它。我尝试使用 dict、list 和 string,但似乎都不起作用。

我的输入将是一个看起来像的字典

input = {"time":"asc", "another_field":"desc"}
Run Code Online (Sandbox Code Playgroud)

Jor*_*ley 7

data_input = {"time":"asc", "another_field":"desc"}
args = [{k:{'order':v}} for k,v in data_input.items()]
s.sort(*args)
Run Code Online (Sandbox Code Playgroud)

我猜你问的是什么?很难说...

  • 是的,这就是所谓的列表解包 (2认同)