python中的JSON Serialize错误:raise TypeError(repo(o)+“不是JSON可序列化的”)

时间:2018-03-29 09:19:40

标签: python json python-2.7 serialization set

我有一个以下列形式返回输出的函数:

结果是:

outputs {
 key: "output"
 value {
 dtype: DT_FLOAT
 tensor_shape {
 }
 float_val: -3.33661770821
 }
}

我想将此输出jsonify。但是,当我尝试这种方式时

def ss():
    ........
    return jsonify({'result':result})

它发送错误:

File "/usr/lib/python2.7/json/encoder.py", line 184, in default
       raise TypeError(repo(o) + "is not JSON serializable")
TypeError:outputs {
     key: "output"
     value {
     dtype: DT_FLOAT
     tensor_shape {
     }
     float_val: -3.33661770821
     }
    }

如何jsonify上述输出?或者我想单独使用Float_val值。

1 个答案:

答案 0 :(得分:0)

您可以使用

将Tensorflow协议消息转换为JSON
from google.protobuf import json_format

message = my_proto_pb2.MyMessage(foo='bar')
json_string = json_format.MessageToJson(message)

参考:https://developers.google.com/protocol-buffers/docs/reference/python/google.protobuf.json_format-module