我必须索引存储在文件中的elasticsearch中的文档,并且在我对其执行字符串操作时索引文档。 (我必须分割线并单独使用分割)
rec = open(file)
for line in rec:
val_1 = line.partition(' ')[0].strip()
val_2 = line.partition(' ')[1].strip()
#print str(val_1) + " " + str(val_2)
es.index(index="test", doc_type="trial", id = val_1, body = val2)
我可以打印此行,但由于某种原因无法对其进行索引。它抛出了以下错误。
文件" C:\ Python27 \ lib \ site-packages \ elasticsearch \ client \ utils.py",第69行,> _wrapped return func(* args,params = params,** kwargs )
File" C:\ Python27 \ lib \ site-packages \ elasticsearch \ client__init __。py",line> 261,in index _make_path(index,doc_type,id),params = params,body =体)
文件" C:\ Python27 \ lib \ site-packages \ elasticsearch \ transport.py",第307行,> perform_request status,headers,data = connection.perform_request(method,url,params ,body,ignore = ignore,timeout = timeout)
如果我在循环中执行这些操作
,则此错误相同es.index(index = "test", doc_type= "trial", id = line.partition(' ')[0].strip(), body = line.partition(' ')[2].strip())
我是以错误的方式发送参数吗?我应该从哪里开始寻找解决方法。
答案 0 :(得分:0)
我找到了解决方案:真的是一个愚蠢的错误。 我写的是这个
import itertools
import re
z = None
with open('circletest1.gcode') as input_file:
for line in itertools.islice(203, None): # islice to skip the first 203 lines
if line.startswith("G"):
z = re.search(r"Z=(\d+)", line).group(1)
elif line.startswith("A"):
x, y = re.search(r"X(\d+) Y(\d+)", line).groups()
print(x, y, z)
我错过的是正确格式化身体。 它应该是
es.index(index="test", doc_type="trial", id = val_1, body = val2)