当前位置: 代码迷 >> 综合 >> 运行Python脚本报错 TypeError: ‘module‘ object is not callable 的解决办法,亲测有效
  详细解决方案

运行Python脚本报错 TypeError: ‘module‘ object is not callable 的解决办法,亲测有效

热度:11   发布时间:2024-02-23 05:44:04.0

错误代码如下

import requests

import business.take_saas_token as take_saas_token

 

#测试用例2:添加心率设备

 

def test_HrGroupAddHeartRateDevice():

 

    query_params = {

        "venue_id": 3189,

        "sn": 27470993,

        "in_venue_no": 1

 

    }

 

    r = requests.post(url=base_url + "/hrsensor/Index/addHrSensor", params=query_params, cookies=take_saas_token())

    print(r.status_code)

 

    rst = r.json()['rst']

    assert r.status_code == 200

    assert rst == 0

 

    if rst == 0:

        print('测试用例2 测试结果:添加心率设备成功,测试通过')

    else:

        print('测试用例2 测试结果:添加心率设备失败,测试未通过')

 

报错信息 :  r = requests.post(url=base_url + "/hrsensor/Index/addHrSensor", params=query_params, cookies=take_saas_token())

E       TypeError: 'module' object is not callable

报错翻译:“模块”对象不可调用

解决思路:

通过报错,我们知道了问题出在模块上,我们在这里只用了2个模块1个是request,1个就是take_saas_token。通过排除法分析,request没有问题,那问题就出在take_saas_token。通过查资料得知在使用Python导入模块的方法import module 导入的东西使用时需加上模块名的限定,也就是在take_saas_token之前加入 take_saas_token这个模块名,即:

cookies=take_saas_token.take_saas_token())


正确的代码:

import requests

import business.take_saas_token as take_saas_token

 

#测试用例2:添加心率设备

 

def test_HrGroupAddHeartRateDevice():

 

    query_params = {

        "venue_id": 3189,

        "sn": 27470993,

        "in_venue_no": 1

 

    }

 

    r = requests.post(url=base_url + "/hrsensor/Index/addHrSensor", params=query_params, cookies=take_saas_token.take_saas_token())

    print(r.status_code)

 

    rst = r.json()['rst']

    assert r.status_code == 200

    assert rst == 0

 

    if rst == 0:

        print('测试用例2 测试结果:添加心率设备成功,测试通过')

    else:

        print('测试用例2 测试结果:添加心率设备失败,测试未通过')

 

修改改后运行通过

  相关解决方案