我尝试将带有2个文档的JSON文件上传到ES。 我收到以下错误
ValueError: Invalid control character at: line 1 column 24 (char 23)
我正在使用这个python代码:
import json
import os, sys
from elasticsearch import Elasticsearch
ES_CLUSTER = 'http://localhost:9200/' # Need PW and User name
ES_INDEX = 'test'
ES_TYPE = 'doc'
es = Elasticsearch(
['localhost'],
http_auth=('elastic', 'changeme'),
port=9200
)
es = Elasticsearch(ES_CLUSTER)
with open("C:\Users\office\Desktop\Elasticsearch data\E-commerce.json") as json_file:
json_docs = json.load(json_file)
es.bulk(ES_INDEX, ES_TYPE, json_docs)
答案 0 :(得分:0)
尝试使用json.loads
代替可能有效的json.load
答案 1 :(得分:0)
也许您可以向我们展示您要上传的json文件?因为没有它,问题没有意义。
P.S。对不起,这是“问题的答案”,但不是评论。我不能写评论,因为我没有足够的声望点。
答案 2 :(得分:0)
问题解决了,这是我使用的代码
import json
from pprint import pprint
from elasticsearch import Elasticsearch
es = Elasticsearch(
['localhost'],
http_auth=('elastic', 'changeme'),
port=9200
)
MyFile= file("C:\Users\office\Desktop\Elasticsearch data\E-commerce2.json",'r').read()
ClearData = MyFile.splitlines(True)
i=0
json_str=""
docs ={}
for line in ClearData:
line = ''.join(line.split())
if line != "},":
json_str = json_str+line
else:
docs[i]=json_str+"}"
json_str=""
print docs[i]
es.index(index='test', doc_type='Blog', id=i, body=docs[i])
i=i+1