Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中的JSON序列化错误:raise TypeError(repo(o)&“不是JSON可序列化的”)_Python_Json_Python 2.7_Serialization_Set - Fatal编程技术网

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。参考: