2017-09-20 8 views
2

フラスコAPIからのリターンのためにJSONにnumpyのアレイのリストを変換する:は、私はこのようなPythonでdictinaryを持って

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

私はflask-apiからこのAPIをcalssクライアントにこの辞書を送りたいです。 私はこのコードを使用する場合:

class GetRepresentationResource(Resource): 
    url = 'representation' 

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

を私はERROを得る:Is not serializeable

+0

の可能な複製を[numpyの配列は、シリアライズJSONではありません](https://stackoverflow.com/questions/26646362/numpy-array-is-not-json-serializable) – MrPyCharm

答えて

0

あなたが応答にあなたの辞書を変換する必要があります。これは、Flaskのjsonify機能を使用して行うことができます。

EDIT:

あなたが最初のリストにあなたのnumpyの配列を変換する必要がありますように思えます。 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] 
} 

これを応答に変換するには、jsonifyを使用します。

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

私は 'はJSON直列化可能ではありません取得再び – user3000968

関連する問題