2017-09-20 7 views
2

J'ai un dictinary en python comme ceci:Convertir une liste des tableaux numpy à JSON pour le retour du flacon api

mydic = { 
    'x1': list_of_numpy_array, 
    'x2': a numpy_array, 
    'x3': a list_of_numpy_array, 
    'x4': a list_of_numpy_array 
} 

Je veux envoyer ce dictionnaire de flask-api au client qui calss ce api. Lorsque j'utilise ce code:

class GetRepresentationResource(Resource): 
    url = 'representation' 

    def get(self): 
     # previous lines of my code which generates mydic 
     return { 
       'data': mydict, 
       'err': '' 
     } 

Je reçois le Erro: Is not serializeable

+0

double possible de [tableau numpy n'est pas JSON sérialisable] (https://stackoverflow.com/questions/26646362/numpy-array-is-not-json-serializable) – MrPyCharm

Répondre

0

Vous devez convertir votre dictionnaire en une réponse. Cela peut être fait en utilisant la fonction jsonify de Flask.

EDIT:

semble que vous avez besoin de convertir vos tableaux de numpy dans la première liste. Essayez de les convertir en liste de liste en utilisant la fonction tolist().

mydic = { 
    'x1': [x.tolist() for x in list_of_numpy_array], 
    'x2': a numpy_array.tolist(), 
    'x3': [x.tolist() for x in list_of_numpy_array], 
    'x4': [x.tolist() for x in list_of_numpy_array] 
} 

puis d'utiliser jsonify pour convertir cela en une réponse.

from flask.json import jsonify 

class GetRepresentationResource(Resource): 
    url = 'representation' 

    def get(self): 
     # previous lines of my code which generates mydic 
     response = { 
       'data': mydict, 
       'err': '' 
     } 

     return jsonify(response) 
+0

Je reçois 'n'est pas JSON sérialisable 'encore – user3000968