我正在逐行迭代csv文件的行,并希望将其插入es中。我对Python和Elasticsearch都不熟悉。如何将一个CSV行转换并逐个插入到ES中?
import csv
import json
from elasticsearch import Elasticsearch
es = Elasticsearch(
[{'host': 'localhost', 'port': 9200}])
print(es)
def csv_reader(file_obj, delimiter=','):
reader = csv.reader(file_obj)
i = 1
results = []
for row in reader:
print(row)
es.index(index='product', doc_type='prod', id=i,
body=json.dump([row for row in reader], file_obj))
i = i + 1
results.append(row)
print(row)
if __name__ == "__main__":
with open("/home/Documents/csv/acsv.csv") as f_obj:
csv_reader(f_obj)
但是我遇到了以下错误:
注:该段文本涉及IT技术。Traceback (most recent call last):
File "/home/PycharmProjects/CsvReaderForSyncEs/csvReader.py", line 25, in csv_reader(f_obj)
File "/home/PycharmProjects/CsvReaderForSyncEs/csvReader.py", line 17, in csv_reader
es.index(index='product', doc_type='prod', id=i, body=json.dump([row for row in reader], file_obj))
File "/usr/lib/python2.7/json/init.py", line 190, in dump fp.write(chunk)
IOError: 文件未打开以进行写操作
".CurrencyType": "Cash"
- Walter U.