python中的JSON序列化错误:raise TypeError(repo(o)&“不是JSON可序列化的”)
我有一个函数,它以如下形式返回输出: 结果是:python中的JSON序列化错误:raise TypeError(repo(o)&“不是JSON可序列化的”),python,json,python-2.7,serialization,set,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
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值 您可以使用
from google.protobuf import json_format
message = my_proto_pb2.MyMessage(foo='bar')
json_string = json_format.MessageToJson(message)
参考资料:结果的类型和值是什么?您发布的内容不是有效的字典,也不能是字符串,因为字符串是JSON可序列化的。这可能是重复的,但让我们等待一个…我不知道结果的类型。我以为是字典,但不是。这里的链接有相同的输出类型。我自己得到了答案。它是来自tensorflow的协议消息,需要转换为json。我使用google协议包将此消息转换为JSON。参考: