【发布时间】:2020-12-11 22:28:17
【问题描述】:
我有一个索引用户。这些是我的文件:
doc1 = {"user_id":1, "name":"first1 last1"}
doc2 = {"user_id":2, "name":"first2 last2"}
我正在尝试使用 Python 的请求进行批量插入
data_as_str = ""
data_as_str += json.dumps({ "_index": "users"}) + "\n"
data_as_str += json.dumps(doc1) + "\n"
data_as_str += json.dumps({ "_index": "users"}) + "\n"
data_as_str += json.dumps(doc2) + "\n"
headers = {'Content-type': 'application/json', 'Accept': 'text/plain'}
r = requests.post("https://ES_HOST/_bulk", auth=awsauth, headers=headers, data=data_as_str)
我得到的错误是非法参数异常:
格式错误的操作/元数据行 [1],应为 START_OBJECT,但找到了 [START_ARRAY]
我已经尝试将它放在一个列表中并添加额外的换行符等。
编辑:
如果我发送 json 而不是数据:
r = requests.post(bulkurl, auth=awsauth, headers=headers, json=data_as_str)
那么错误是批量请求必须由换行符终止[\n]
但我确实以换行符结束。
【问题讨论】:
标签: elasticsearch aws-elasticsearch