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

本文介绍了一种常见的Python编程错误——模块对象不可调用,并提供了详细的解决方案。通过调整模块调用方式,成功解决了测试用例中接口调用的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

错误代码如下

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 测试结果:添加心率设备失败,测试未通过')

 

修改改后运行通过

 

希望对刚接触Python接口测试的同学有所帮助,也希望大家多多点赞收藏转发,您的鼓励是对我付出最大的支持!~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值