【发布时间】:2015-09-22 01:56:40
【问题描述】:
在 pycharm 中,我有按预期工作的代码。有一个函数在调用时会返回一个 numpy 数组。
我想将该数组放入 RStudio 的环境中,例如数据框或任何真正作为起点的东西。
这是我的简单代码
library(RJSONIO)
library(rPython)
locTest <-"/home/cornelis/Downloads/M1302000139_1442697993.722772.raw"
x<-python.call("get_frames",locTest,256,256)
这是输出。 RStudio 控制台中显示的 numpy 数组是正确的,但它告诉我它不是 JSON 可序列化的。我也意识到包 rPython 的 documentation 没有将 python.call 分配给任何东西,但我不知道如何将 Python 函数调用的返回值分配给 R 中的变量(文档有点薄,但希望我只是没有找对地方)
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/usr/lib/python2.7/json/__init__.py", line 243, in dumps
return _default_encoder.encode(obj)
File "/usr/lib/python2.7/json/encoder.py", line 207, in encode
chunks = self.iterencode(o, _one_shot=True)
File "/usr/lib/python2.7/json/encoder.py", line 270, in iterencode
return _iterencode(o, 0)
File "/usr/lib/python2.7/json/encoder.py", line 184, in default
raise TypeError(repr(o) + " is not JSON serializable")
TypeError: array([[[ 14., 15., 15., ..., 2., 3., 3.],
[ 14., 15., 15., ..., 3., 3., 3.],
[ 14., 13., 13., ..., 2., 2., 3.],
...,
[ 2., 2., 2., ..., 1., 1., 1.],
[ 2., 2., 3., ..., 1., 1., 1.],
[ 3., 4., 3., ..., 1., 1., 2.]],
[[ 11., 13., 13., ..., 3., 3., 3.],
[ 11., 11., 12., ..., 3., 3., 3.],
[ 11., 11., 10., ..., 2., 3., 4.],
...,
[ 1., 2., 3., ..., 1., 1., 1.],
[ 1., 3., 2., ..., 1., 1., 1.],
[ 2., 2., 2., ..., 1., 1., 1.]],
[[ 12., 13., 14., ..., 4., 3., 3.],
[ 12., 11., 11., ..., 3., 4., 4.],
[ 11., 11., 9., ..., 3., 4., 3.],
...,
[ 1., 2., 2., ..., 1., 1., 1.],
[ 2., 2., 2., ..., 1., 1., 1.],
[ 2., 2., 3., ..., 2., 1., 1.]],
...,
[[ 74., 77., 78., ..., 88., 89., 89.],
[ 77., 78., 76., ..., 89., 89., 88.],
[ 79., 78., 77., ..., 89., 87., 88.],
...,
[ 39., 38., 34., ..., 56., 56., 53.],
[ 38., 39., 35., ..., 55., 56., 55.],
[ 36., 38., 36., ..., 55., 56., 58.]],
[[ 81., 79., 79., ..., 93., 91., 92.],
[ 79., 78., 78., ..., 91., 93., 91.],
[ 78., 78., 78., ..., 89., 90., 88.],
...,
[ 39., 37., 35., ..., 59., 57., 55.],
[ 37., 35., 36., ..., 59., 59., 57.],
[ 38., 38., 37., ..., 56., 60., 61.]],
[[ 79., 79., 79., ..., 89., 90., 91.],
[ 77., 78., 78., ..., 89., 89., 88.],
[ 77., 77., 76., ..., 88., 86., 86.],
...,
[ 40., 36., 33., ..., 59., 58., 59.],
[ 36., 35., 33., ..., 58., 58., 57.],
[ 35., 36., 36., ..., 59., 57., 58.]]], dtype=float32) is not JSON serializable
Error in python.get("_r_call_return") : Variable not found
【问题讨论】: