Экспорт данных python в elasticsearch

#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}}})))