解决TypeError:'str'对象不可调用

时间:2018-02-19 18:20:12

标签: python

我已经尝试过研究这个问题,但看起来它的原因可能会有所不同,并且需要一些输入。以下一行;

resultRisport70 = clientRisport70.service.selectCmDevice('','CmSelectionCriteria'({'SelectBy':'Name','Status':'Any','DeviceClass':'Phone','SelectItems':{'item':{'Item':'SEPblah'}}}))

发生错误;

TypeError: 'str' object is not callable

我尝试重组这条线,但我似乎无法弄清楚这个问题。我在python2中也有一个类似的结构线似乎可以工作,但python3中的这一行确实运行。任何帮助表示赞赏。

我有相同的类型代码,用php编写;

$devices1 = $soapClient->selectCmDevice(array(
        'StateInfo' => '',
        'CmSelectionCriteria'=>
        (array(
            'DeviceClass'=>'Phone',
            'SelectBy'=>'Name',
            'Status'=>'Registered',
            'Protocol'=>'Any',
            'DownloadStatus'=>'Any',
            'SelectItems'=>array(
                'item'=>array(
                    'Item'=>'*' . $searchString . '*'
                ))))));

这是相同代码的一个版本,转到一个被删除的WSDL,但似乎工作正常;

resultRisport70 = clientRisport70.service.SelectCmDevice('',{'SelectBy':'Name', 'Status':'Registered', 'Class':'Phone','SelectItems':{'SelectItem':{'Item':phoneDetailName}}})

1 个答案:

答案 0 :(得分:2)

我认为你试图在这里将字符串称为函数,这是不可能的。具体来说,

'CmSelectionCriteria'() 不是有效的。

"abc"()会导致同样的错误。您无法对字符串执行调用。

如果CmSelectionCriteria是您在其他地方定义的函数,请删除引号。