elasticsearch,exception,try-catch,Python,elasticsearch,Exception,Try Catch" /> elasticsearch,exception,try-catch,Python,elasticsearch,Exception,Try Catch" />

使用python elasticsearch创建索引时如何处理try-catch异常?

使用python elasticsearch创建索引时如何处理try-catch异常?,python,elasticsearch,exception,try-catch,Python,elasticsearch,Exception,Try Catch,如果索引已经存在,我尝试打印错误。我将python与Elasticsearch结合使用 import time,schedule import requests from elasticsearch import Elasticsearch import sys import logging import json from datetime import datetime es = elasticsearch.Elasticsearch('http:/ip:port',timeout=60

如果索引已经存在,我尝试打印错误。我将python与Elasticsearch结合使用

import time,schedule
import requests
from elasticsearch import Elasticsearch 
import sys
import logging
import json
from datetime import datetime

es = elasticsearch.Elasticsearch('http:/ip:port',timeout=600)
settings = { "settings": {
                 "number_of_shards":1,
                  'number_of_replicas':0
                 },
      "mappings" : { 
           "document" : {
                "properties":{
                    "geo": {
                       "type": "geo_point"
                            }
                          }
                        } 
                     } 
                  }
try:
 es.indices.create(index = "spacestation", body=settings)
except Elasticsearch.ElasticsearchException as es1:
 print('Index already exists!!')
但我犯了以下错误:

elasticsearch.exceptions.RequestError: RequestError(400, 'resource_already_exists_exception', 'index [spacestation/IlVCpABTSYmWVDVrGmTRMA] already exists')
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "__main__.py", line 42, in <module>
except Elasticsearch.ElasticsearchException as es1:
AttributeError: type object 'Elasticsearch' has no attribute 'ElasticsearchException'
elasticsearch.exceptions.RequestError:RequestError(400,“资源已存在”“异常”,“索引[空间站/IlVCpABTSYmWVDVrGmTRMA]已存在”)
在处理上述异常期间,发生了另一个异常:
回溯(最近一次呼叫最后一次):
文件“\uuuu main\uuuuuu.py”,第42行,在
除了Elasticsearch.ElasticsearchException作为es1:
AttributeError:类型对象“Elasticsearch”没有属性“ElasticsearchException”

无论我的代码正确与否,我都没有得到这个错误。我认为这是不正确的代码打印错误,如果已经存在索引。有人能纠正我吗?谢谢

只需将代码更改为:

from elasticsearch import Elasticsearch, RequestError
...


try:
  es.indices.create(index = "spacestation", body=settings)
except RequestError as es1:
  print('Index already exists!!')
  sys.exit(1)

我得到了这个错误:Traceback(最近一次调用上次):文件“main.py”,第42行,在Exception elasticsearch.exceptions.RequestError中作为es1:NameError:name'elasticsearch'未定义这不是“elasticsearch”附带的吗?是的,它工作正常,谢谢,但我在问这个问题时犯了一个错误。实际上我需要打印这个错误并停止程序。通过这种方式,我打印错误并继续执行其他步骤,即数据流。如果索引已经存在,我需要什么打印错误并停止程序!!谢谢,这就是我需要的!!很酷,很高兴它有帮助!