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

使用nbtlib向List添加Compound报错:应为End标签,求解决

解决nbtlib创建Compound列表的类型错误

问题原因

你遇到的IncompatibleItemType错误,核心是List的初始化方式错误。nbtlib要求创建List时必须明确指定它要存储的标签类型,而你直接传入Compound()实例,导致库误判这个列表的元素类型为End(NBT格式中,Compound/List的末尾会用End标签标记结束,但这里是类型指定逻辑出错)。

正确写法

初始化List时,要通过类型注解或者tag_type参数指定元素为Compound类型,示例代码如下:

import nbtlib
from nbtlib.tag import *

# 方式1:用类型注解指定列表元素类型
CpdList = List[Compound]()
# 方式2:通过tag_type参数指定
# CpdList = List(tag_type=Compound)

Cpd = Compound()
Cpd['name'] = String("Name")
Cpd['test'] = Byte(0)

CpdList.append(Cpd)

关于End标签的说明

End标签是NBT格式的内置特殊标签,作用是标记Compound的键值对、List的元素序列结束,不需要手动添加,nbtlib会在序列化时自动处理。你之前尝试给Compound添加End标签的操作完全没必要,也解决不了问题。

内容的提问来源于stack exchange,提问作者Anthony C

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 14:18:16