2017-06-22 2 views
0

Ich möchte ein JSON-Objekt in ElasticSearch hinzufügen, das ein Array enthält. Ich benutze Python. Mein Code sieht ungefähr so ​​aus:Wie fügt man ElasticSearch ein JSON-Objekt mit einem Array mithilfe von Python hinzu?

#This returns a list of mutual friends 
mutual_friends_list = get_mutual_friends(user_id, friend_id) 
mutual_friends_dict = {"id": 1, "mutual_friends": mutual_friends_list} 

#_DB is the module I have ElasticSearch 
_DB.add_mutual_friends(mutual_friends_dict) 

In anderen Modul habe ich die folgende Abbildung:

friend_attributes = str({ 
    "mappings": { 
    "friend_attributes": { 
     "properties": { 
     "id_str": { 
      "type": "string" 
      }, 
     "mutual_friends": { 
      "type": "long", "index_name": "tag" 
     } 
}).replace("'",'"') 

ich die folgende Fehlermeldung erhalten:

raise HTTP_EXCEPTIONS.get(status_code, TransportError)(status_code, 
error_message, additional_info) 
elasticsearch.exceptions.RequestError: TransportError(400, 
'illegal_argument_exception', '[G3-P0l7][127.0.0.1:9300] 
[indices:data/write/index[p]]') 

Was sollte ich ändern ein JSON-Objekt mit einem Array hinzufügen?

Antwort

0

Versuchen Sie, Ihre Daten mit dem Modul json in JSON zu konvertieren.

import json 

data = { 
    "mappings": { 
    "friend_attributes": { 
     "properties": { 
     "id_str": { 
      "type": "string" 
      }, 
     "mutual_friends": { 
      "type": "long", "index_name": "tag" 
     } 
} 

friend_attributes = json.loads(data) 
+0

Ich habe das versucht, aber es hat nicht funktioniert. Vielen Dank. – felipe

+0

@felipe Konnten Sie spezifisch sein? Warum hat es nicht funktioniert? –

+0

@Coldspeed Ich bekomme den folgenden Fehler: raise HTTP_EXCEPTIONS.get (status_code, TransportError) (status_code, error_message, additional_info) elasticsearch.exceptions.RequestError: TransportError (400, 'illegal_argument_exception', '[G3-P0l7] [ 127.0.0.1:9300][indices:data/write/index[p]] ') Mein Programm sendet Daten gut in elastische Suche, wenn ich keine Liste in mutual_friends hinzufüge. Wenn ich eine Liste hinzufüge, zerquetscht. – felipe

Verwandte Themen