You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python REST API报错TypeError: unhashable type: 'list'的修复咨询

修复Python REST API中TypeError: unhashable type: 'list'错误

问题原因

你写的payload直接把列表放在字典{}里了,Python字典的键必须是可哈希类型(比如字符串、数字、元组),而列表是不可哈希的,所以触发了这个错误。

修复方案

根据REST API的常见要求,有两种可行的修改方式,具体选哪种要看API的文档规范:

方案1:给列表添加合法的字典键(推荐,符合多数API格式)

如果API要求请求体是一个包含列表的字典,给列表指定一个字符串类型的键(键名要和API文档要求的字段一致):

def test_configure_destination_port(omx_ip, verb, path, header):
    uri = "https://" + omx_ip + '/api' + path
    # 修复后的payload:给列表添加合法字符串键
    payload = {
        "config_items": [  # 键名可根据API文档调整,比如"ports"或其他指定字段
            {"IsPresent": True, "Input": {...}, ...},
            # 更多配置项
        ]
    }
    response = requests.request(verb, uri, verify=False, headers=header, json=payload)

方案2:直接用列表作为请求体

如果API接受直接传入列表作为JSON请求体,去掉外层的字典:

def test_configure_destination_port(omx_ip, verb, path, header):
    uri = "https://" + omx_ip + '/api' + path
    # 直接用列表作为payload
    payload = [
        {"IsPresent": True, "Input": {...}, ...},
        # 更多配置项
    ]
    response = requests.request(verb, uri, verify=False, headers=header, json=payload)

关键注意点

  • 务必对照目标API的文档确认请求体格式,避免格式不匹配导致新的错误。
  • 记住Python字典的核心规则:键只能是可哈希对象,列表、字典这类可变类型不能作为键。

内容的提问来源于stack exchange,提问作者joe john

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 04:10:27