在我的后端代码中,我用rpy2
从python调用了R函数,并且我从R函数获得了字典输出,我需要在服务器端点将其呈现为JSON
。但是我字典的json.dumps()
输出实际上不是JSON
对象。我发现是因为R函数的输出为StrVector
,所以我必须在字典中将输出数据字符串化,然后使用json.dumps
,但仍无法获得正确格式的JSON。
为什么json.dumps
在字典中的数据上表现出奇怪?在端点获取正确的JSON结构化数据的正确方法是什么?有什么想法吗?
字典中的输入数据:
这里是R函数返回的字典中的数据。该词典的类型为<class 'rpy2.robjects.vectors.StrVector'>
mydict = {"score":[72.188,62.0955,19.3374],"category":"medium",
"guidance":"text description","readiness":true,
"features_used":{"name":"gcstotal","value":null,
"range_value":[3.6667,5,6.3333,7.6667,9,10.3333,11.6667,13,14.3333],
"range_frequency":[0.0024,0,0.0049,0.0016,0.0073,0.0195,0.0098,0.0138,0.9406],"importance":0}}
更新:
我刚刚进行了mydict
的质量检查,它是<class 'rpy2.robjects.vectors.StrVector'>
,所以我在下面的代码中尝试过:
json.dumps(str(mydict))
然后我最终低于输出。我从python调用了R函数,并使用了rpy2
,但StrVector的json.dumps()
的输出并不是真正的json。为什么?有什么主意吗?
当我将这本词典提供给json.dumps(mydict )
时,我将得到以下输出:
"{\"score\":[72.188,62.0955,19.3374],\"category\":\"medium\",
\"guidance\":\"text description\",\"readiness_flag\":true,
\"features_used\":{\"name\":\"gcstotal\",\"value\":null,
\"range_value\":[3.6667,5,6.3333,7.6667,9,10.3333,11.6667,13,14.3333],
\"range_frequency\":[0.0024,0,0.0049,0.0016,0.0073,0.0195,0.0098,0.0138,0.9406],\"importance\":0}} \n"
我只是不明白为什么会以json.dumps
中的非JSON对象结尾。是json.dumps
的问题,还是在服务器端点使用错误的方式对jsonify词典进行了处理?为什么我有以上输出?任何的想法?谢谢