转换Python列表以与rpy2 FloatVector一起使用

转换Python列表以与rpy2 FloatVector一起使用,python,rpy2,Python,Rpy2,这段代码在很大程度上非常有效,这要感谢帮助我的天才们 import os from rpy2.robjects.packages import SignatureTranslatedAnonymousPackage from rpy2.robjects.vectors import IntVector, FloatVector with open ('sampleSizeWrapper.R') as fh: rcode = os.linesep.join(fh.readline

这段代码在很大程度上非常有效,这要感谢帮助我的天才们

import os
from rpy2.robjects.packages import SignatureTranslatedAnonymousPackage
from rpy2.robjects.vectors import IntVector, FloatVector

with open ('sampleSizeWrapper.R') as fh:
        rcode = os.linesep.join(fh.readlines())
        wrapper = SignatureTranslatedAnonymousPackage(rcode,"wrapper")

a=(0.8,0.9,0.95,0.995);

wrapper.saveSpecContours(IntVector((0,1)),
                 0.1, FloatVector(a),
                 0.001, 1, 986)
对于像这样的硬编码,我没有问题,但是当我通过JSON从web向Python脚本传递一个值时,看起来像这样

a=data["sens"]
然后a变为0.8,0.9,0.95,0.995

但是当我试着打电话给FloatVectora的时候我发现

ValueError: Error while trying to convert element 1 to a double.
我的Python新手身份让我有点困惑,为什么这不起作用,尽管我确信这与将Python列表转换为1D向量有关。有人知道我如何在没有硬编码的情况下使用FloatVector吗


非常感谢你。JW

a=data[sens].split',我相信它会做你想做的事。看起来a是一个字符串。它应该是一个浮动列表。我们可以解决这个问题,但是你的JSON解码应该已经处理好了,除非它一开始编码不正确。数据是如何构建的?感谢DSM。它是一根绳子。它只是一个逗号分隔的值列表,输入到网页上的文本框中。user2097159:它就像一个champ,这就是我需要的答案。DSM我也投了赞成票。真的,真的,伙计们,你们不知道这有多大帮助。JW