#python #pandas #elasticsearch
#python #pandas #elasticsearch
Вопрос:
У меня есть следующий фрейм данных :
date_facture product_description ... nouv2 ecartt
0 2020/04/01 00:01:14 xyz ... 1.00 0.00
1 2020/04/01 00:02:29 None ... 2.00 1.00
2 2020/04/01 00:03:14 eu ... 1.00 0.00
3 2020/04/01 00:04:17 com ... 1.00 0.00
Я хотел бы экспортировать их в elasticsearch, и для этого мне нужно преобразовать их в соответствующий формат.
На данный момент мой код :
es_url_rw = url_elastic
es_index_rw = 't_angelique'
def json_converter(o):
if isinstance(o, datetime.datetime):
return o.strftime("%Y/%m/%d %H:%M:%S")
print(requests.put(es_url_rw es_index_rw).text)
headers = {'Content-type': 'application/json'}.
data = df.to_json()
bulk_json = []
bulk_json.append(json.dumps({'index': {'_index': es_index_rw, '_id': 123}}})))
bulk_json.append(json.dumps(data, default=json_converter))
requests.put(es_url_rw '_bulk', data='n'.join(bulk_json) 'n', headers=headers)
Но при этом я не могу найти данные в elastic. Я знаю, что проблема возникает из этой строки:
data = df.to_json()
Действительно, я сначала протестировал
data=df.to.dict()
при всех возможных параметрах orient я нашел данные в elastic, но они были не в том формате. И когда я тестирую с :
data=df.to_json()
Я даже не нахожу данные на elasctic.
Я действительно не знаю, что теперь делать. Не могли бы вы мне помочь, пожалуйста?
Комментарии:
1. Да, но в этом случае данные не отображаются в elastic :/
2. Также вам не хватает поля ‘_source’, в котором будут данные в этой строке bulk_json.append(json.dumps({‘index’: {‘_index’: es_index_rw, ‘_id’: 123}}})))