尝试发送 Elasticsearch 时出现不可散列的类型'dict'



我在Python中不断收到以下错误

发生异常:类型错误不可哈希类型:"字典"

在第 92 行

"should": [],
"must_not": []

这是查询字符串

res = es.search(
scroll = '2m',
index = "logstash-*",
body = {
{
"aggs": {
"2": {
"terms": {
"field": "src_ip.keyword",
"size": 50,
"order": {
"1": "desc"
}
},
"aggs": {
"1": {
"cardinality": {
"field": "src_ip.keyword"
}
}
}
}
},
"size": 0,
"_source": {
"excludes": []
},
"stored_fields": [
"*"
],
"script_fields": {},
"docvalue_fields": [
{
"field": "@timestamp",
"format": "date_time"
},
{
"field": "flow.start",
"format": "date_time"
},
{
"field": "timestamp",
"format": "date_time"
},
{
"field": "tls.notafter",
"format": "date_time"
},
{
"field": "tls.notbefore",
"format": "date_time"
}
],
"query": {
"bool": {
"must": [
{
"range": {
"@timestamp": {
"gte": 1555777931992,
"lte": 1558369931992,
"format": "epoch_millis"
}
}
}
],
"filter": [
{
"match_all": {}
}
],
"should": [],
"must_not": []
}
}
}
})

body的值是一个集合(没有键值的{ }是一个集合文字,例如,{1,2}是一个集合)。在这个集合中,你有一本字典。

集合中的项必须是可哈希的,而字典则不是。 正如@Carcigenicate的评论所说,这似乎是{{ }}而不是{ }body价值的错字。

Elasticsearch文档显示body应该是一个字典。
有关 python 文档中的集合的更多信息

最新更新