首页 > 其他分享 >pycharm报错:TypeError: unhashable type: 'slice'

pycharm报错:TypeError: unhashable type: 'slice'

时间:2024-09-03 19:49:38浏览次数:15  
标签:TypeError word name unhashable assert parametrize 报错 result print

一、原因:没有使用正确的数组或没有使用正确的读取数据的方式

二、因为我在yaml中,传参用的是字典格式

三、但是 @pytest.mark.parametrize("",[ ]),需要传数组

import pytest


# 数组的形式
@pytest.mark.parametrize("name,word", [["安琪拉", "火烧屁屁咯"], ["黄忠", "黄忠黄忠黄忠"], ["大乔", "大乔大乔大乔"]])
def test_parametrize_02(name, word):
    print(f'{name}的台词是{word}')
print("我是测试parametrize_02" + name, word)


# 元祖的形式
@pytest.mark.parametrize("name,word", [("安琪拉", "火烧屁屁咯"), ("黄忠", "黄忠黄忠黄忠"), ("大乔", "大乔大乔大乔")])
def test_parametrize_02(name, word):
    print(f'{name}的台词是{word}')
    print("我是测试parametrize_02" + name, word)


# 参数值为字典的形式
@pytest.mark.parametrize("hero", [{"name": "安其拉", "word":"7878787878"},
                                       {"name": "黄忠", "word":"太阳被我射熄火了"},
                                       {"name": "后裔", "word":"come on"}])
def test_parametrize_01(hero):
    print(hero["name"])
    print(hero["word"])


    

# @pytest.mark.parametrize("name,word", ["安琪拉", "火烧屁屁咯"]) 报错
@pytest.mark.parametrize("name,word", [["安琪拉", "火烧屁屁咯"]])
def test_parametrize_02(name, word):
    print(f'{name}的台词是{word}')

四、修改yaml传参格式

 传参也对应修改一下:params = { "shouji": mobile, "appkey": appkey }

@pytest.mark.parametrize("mobile,appkey", get_data['mobile_belong_post'])
def test_mobile_post(mobile, appkey):
    print("测试手机号归属地post请求")
    params = {
        'shouji': mobile,
        'appkey': appkey
    }
    url = 'http://api.binstd.com/shouji/query'
    r = requests.post(url=url, params=params)
    print(r.json())
    print(r.status_code)
    assert r.status_code == 200
    result = r.json()
    assert result['status'] == 0
    assert result['msg'] == 'ok'
    assert result['result']['shouji'] == '13456755448'
    assert result['result']['province'] == '浙江'
    assert result['result']['city'] == '杭州'
    assert result['result']['company'] == '中国移动'
    assert result['result']['cardtype'] is None
    assert result['result']['areacode'] == '0571'

 

标签:TypeError,word,name,unhashable,assert,parametrize,报错,result,print
From: https://www.cnblogs.com/songfeigogogo/p/18395284

相关文章

  • 52 mysql 启动过程中常见的相关报错信息
    前言我们这里主要是看一下service mysqlstart,servicemysqlstop的过程中的一些常见的错误问题这些 也是之前经常碰到, 但是 每次都是去搜索, 尝试 1,2,3,4去解决问题但是 从来未曾思考过这个问题到底是怎么造成的  TheserverquitwithoutupdatingPIDfil......
  • ESP32 出现 failed to load RF 报错
    前言正文周五我测试程序没有问题,板子放在桌子上就没动过了。周一过来的时候,重新烧录程序,就发现出现如下报错。最终发现是电池过放导致电池损坏功率不够,因此RF无法启动,一直在重启。解决办法很简单,换一颗正常的电池即可。W(1446)phy_init:failedtol�ESP-ROM:esp8684-api2-20220......
  • 瓦出现了DirectX Runtime错误怎么办 无畏契约DirectX Runtime报错修复解决方案合集
    如果您在玩《无畏契约》(Valorant)时遇到DirectXRuntime报错,这可能是因为游戏运行时遇到了与DirectX相关的问题。以下是您可以尝试的一些解决方案:1.确保Windows和DirectX都是最新的打开“设置”>“Windows更新”,检查并安装所有可用的更新。这包括最新的Windows......
  • Jenkins启动报错java.lang.NullPointerException
    centos6.9下安装Jenkins,可以正常安装,但是启动后,Jenkins.log中发现报错java.lang.NullPointerException:Cannotloadfromshortarraybecause"sun.awt.FontConfiguration.head"isnullatjava.desktop/sun.awt.FontConfiguration.getVersion(FontConfiguration.java:......
  • 解决 Exchange 发到邮件组报错 550 5.1.1 User unknown (in reply to RCPT TO command
    版本2010只需要关闭:要求所有发件人通过身份验证位置:Exchange管理控制台收件人配置通讯组XXX组属性邮件流设置邮件传递设置[√]要求所有发件人通过身份验证取消勾选,再点确定即可参考资料:https://portal.thobson.com/knowledgebase/427/550-511-Use......
  • vue3中使用pinia报错
    问题:UncaughtError:[......
  • 【已解决】Invalid value type for attribute ‘factoryBeanObjectType‘: java.lang.
    一、问题描述Invalidvaluetypeforattribute‘factoryBeanObjectType‘:java.lang.String二、解决方案更新本地的Mybatisplus版本<dependency>  <groupId>com.baomidou</groupId>  <artifactId>mybatis-plus-spring-boot3-starter</artifactId> ......
  • PostgreSQL的安装与配置(包含多种可能遇到的报错或者无法安装问题)
    1.Windows安装1.官网下载安装包,EDB:Open-Source,EnterprisePostgresDatabaseManagement(enterprisedb.com) 2.按照提示步骤进行安装(文件路径很重要!!!)这是PostgreSQL的安装目录(自定义目录安装的一定要命名清楚,不要和后面的data混淆) 这个全选这个是存储数据的目录(不......