首页 > 解决方案 > 在函数中使用未经授权的参数名称

问题描述

我正在使用 python 的库elasticsearch并尝试使用客户端来处理这种请求:

GET /_search?size=250&from=250

我的问题更多是关于python而不是elasticsearch:如何指定参数from?该名称已被 python 用作关键字,当我运行下一个函数时:

 def request(size_hits=10, from_hit=0):
       host = 'XXXX'
       YOUR_ACCESS_KEY = 'XXXX'
       YOUR_SECRET_KEY = 'XXXX'
       REGION = 'XXXX' #change to your region
       awsauth = AWS4Auth(YOUR_ACCESS_KEY, YOUR_SECRET_KEY, REGION, 'es')

       es = Elasticsearch(
           hosts=[{'host': host, 'port': XXXX}],
           http_auth=awsauth,
           use_ssl=True,
           verify_certs=True,
           connection_class=RequestsHttpConnection
       )
       
       res = es.search(index='index_name', from=from_hit, size=size_hits, body={"query": {"match_all": {}}})
       print(res)

我收到一个错误:

File "test_elasticsearch.py", line 24
      res = es.search(index="agence_test2", from=from_hits, size=n_hits, body={"query": {"match_all": {}}})
                                            ^
SyntaxError: invalid syntax

文件摘录

标签: pythonpython-3.xelasticsearch

解决方案


在您链接到的页面的最顶部,您可以找到以下内容:

为了与 Python 生态系统兼容,我们使用 from_ 而不是 from 和 doc_type 而不是 type 作为参数名称。


推荐阅读