我正在尝试使用azureml中的Python笔记本设置Web服务,我希望它返回{string:float}的字典。浮点序列化很好,但字符串没有。
这是我正在使用的功能:
def demoservice(N, Vy, My):
X = scaler.fit_transform([N, Vy, My])
res = clf.predict(X)
a = [ {'diam': x[0], 'radius': x[1], 'thickness': x[2]} for x in res]
return a
电话:
demoservice("140", "100", "0")
正确返回:
[{'diam': 16.0, 'radius': 2.0, 'thickness': 5.0}]
但是Web调用会返回此json响应:
{"Results":{"output1":{"type":"table","value":{"Values":[["{\"type\": \"list\", \"value\": [{\"type\": \"dict\", \"value\": [[{\"type\": \"bytes\", \"value\": \"ZGlhbQ==\"}, {\"type\": \"float\", \"value\": \"16.0\"}], [{\"type\": \"bytes\", \"value\": \"cmFkaXVz\"}, {\"type\": \"float\", \"value\": \"2.0\"}], [{\"type\": \"bytes\", \"value\": \"dGhpY2tuZXNz\"}, {\"type\": \"float\", \"value\": \"5.0\"}]]}]}"]]}},"output2":{"type":"table","value":{"Values":[["data:text/plain,Execution OK\r\n",null]]}}}}
如您所见,在响应中字典的键未正确序列化。例如:
{\"type\": \"bytes\", \"value\": \"cmFkaXVz\"}
这里我有cmFkaXVz
而不是可读值。