结构错误:unpack\u from需要至少4字节的缓冲区

2024-09-28 22:20:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我对Flatbuffers非常陌生,正在提高我对Python的知识,所以如果我忽略了一些简单的东西,请原谅我。你知道吗

我正在尝试让样例Monster应用程序在Python上运行,但收到以下错误: 结构错误:unpack\u from需要至少4字节的缓冲区

我正在使用教程中的文件,使用flatc生成代码并读取Monster数据文件。当我尝试使用“怪物。法力()“它向我发送了一个错误消息。你知道吗

这是我正在使用的代码,再简单不过了。 我尝试了2.7和3.6两个版本的代码,得到了相同的错误:-(

import MyGame  # refers to generated code
import MyGame.Example  as example
import MyGame.Example.Color  # refers to generated code
import MyGame.Example.Monster  # refers to generated code
import MyGame.Example.Weapon  # refers to generated code
import MyGame.Example.Vec3  # refers to generated code

buf = open('monsterdata.json', 'rb').read()
buf = bytearray(buf)
monster = MyGame.Example.Monster.Monster.GetRootAsMonster(buf, 0)

mana = monster.Mana()

错误消息:

color = monster.Mana()

文件“/project/sample/MyGame/Example/怪物.py“,第34行,魔法值 o=flatbuffers.number\u类型.UOffsetTFlags.py\u类型(自我_制表符偏移(6)) 文件“/home/colin/.local/lib/python3.6/site-packages/flatbuffers/表.py“,第37行,偏移 vtable=自身位置- 赛尔夫,快(N.索夫塞特旗,自身位置) 文件“/home/colin/.local/lib/python3.6/site-packages/flatbuffers/表.py“,第93行,在Get中” 返回flags.py\u类型(编码。获取(flags.packer\类型, 自身字节,关) 文件“/home/colin/.local/lib/python3.6/site-packages/flatbuffers/编码.py“,第24行,在Get中” 回程封隔器_type.unpack\u从(内存视图类型(buf),头部)[0] 结构错误:unpack\u from需要至少4字节的缓冲区

我肯定我做了一些愚蠢的事情,希望能得到一些帮助。你知道吗

rgds公司 科林


Tags: 文件topyimport类型example错误code
1条回答
网友
1楼 · 发布于 2024-09-28 22:20:45

经过进一步的测试,我退一步回顾了真正的问题是什么,我意识到自己做错了什么。你知道吗

我发布的代码是读取json文件并转换为二进制形式,而不是读取使用flatc生成的二进制形式。这当然行不通,是导致错误的原因。经过纠错后读取二进制数据的代码都按预期工作。你知道吗

相关问题 更多 >