我正在嘗試請求會話信息,并且可以在 python 控制臺上打印出會話信息,但無法在服務(wù)器端點上返回會話信息。該錯誤表示該對象不是 JSON 可序列化的。這是錯誤消息:TypeError: Object of type ListVector is not JSON serializable我發(fā)現(xiàn)這篇文章與我的帖子相關(guān),我嘗試了它的解決方案,但它對我不起作用。如何轉(zhuǎn)換rpy2.ListVector為可JSON序列化的字典?任何解決方案?我的嘗試:from flask import Flask, jsonify, requestfrom flask_restplus import Api, Resourceimport json##import osos.environ['PYTHONHOME'] = r"C:\Users\me\AppData\Local\Programs\Python\Python37"os.environ['PYTHONPATH'] = r"C:\Users\me\AppData\Local\Programs\Python\Python37\Lib\site-packages"os.environ['R_HOME'] = r"C:\Program Files\R\R-3.3.2"os.environ['R_USER'] = r"C:\Users\me\AppData\Local\Programs\Python\Python37\Lib\site-packages\rpy2"##app = Flask(__name__)api = Api(app)ns = api.namespace('ns')## load R functionimport rpy2import rpy2.robjects as robjects@api.route('/')class AResource(Resource): def post(self): sess = robjects.r("sessionInfo()") return jsonify({'sessioninfo': sess})if __name__ == '__main__': api.add_namespace(ns) app.run(debug=True)在這里,我只是簡單地向服務(wù)器端點發(fā)出請求,我可以在控制臺上打印出會話信息,但無法在服務(wù)器端點上返回它。我怎樣才能使這項工作?有什么快速的想法嗎?謝謝是否有任何可能的解決方案來解決此錯誤?任何想法?
1 回答

明月笑刀無情
TA貢獻1828條經(jīng)驗 獲得超4個贊
跟進您的上述嘗試,我將您的問題修復(fù)如下:
class AResource(Resource):
def post(self):
sess = robjects.r("sessionInfo()")
new_sess= { key : sess.rx2(key)[0] for key in sess.names }
return jsonify({'sessioninfo': str(new_sess)})
現(xiàn)在您可以在服務(wù)器端點上看到 json 輸出。
添加回答
舉報
0/150
提交
取消