2017-09-27 10 views
0

私はelasticsearch-dslを使ってソートするコマンドを作成しようとしています。しかし、私が困って正しい形式で変数を渡すことがあります。複数のフィールドを持つPython elasticsearch-dslソート

フォーマットは、問題は、私は、変数として{"time":{"order":"asc"}}, {"anoter_field":{"order":"desc"}}を入れしようとしている

s=Search() 
s = s.sort({"time":{"order":"asc"}}, {"anoter_field":{"order":"desc"}}) 
s.execute() 

する必要がありますが、私はこれを取得するように見えることはできません正しい構文で。私はdict、list、stringを使ってみましたが、どれもうまくいかないようです。

私の入力は、あなたが求めているものである私は推測

input = {"time":"asc", "another_field":"desc"} 

答えて

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

のように見えるdictのでしょうか?それを伝えるのは難しいです...

+0

はい....あなたはそれを正確に得ました。リスト内を渡す '*'は大丈夫ですか? – JChao

+1

これはリストアンパックと呼ばれる –

関連する問題