JSON 使用 Nao 机器人解析 - AttributeError

JSON Parsing with Nao robot - AttributeError

我在 Windows 上使用带有 naoqi 2.1 版和 Choregraphe 的 NAO 机器人。我想从附加文件中解析 json 到行为。我附加了 that link 中的文件。 代码:

def onLoad(self):
    self.filepath = os.path.join(os.path.dirname(ALFrameManager.getBehaviorPath(self.behaviorId)), "fileName.json")
def onInput_onStart(self):
    with open(self.filepath, "r") as f:
        self.data = self.json.load(f.get_Response())
    self.dataFromFile = self.data['value']
    self.log("Data from file: " + str(self.dataFromFile))

但是当我 运行 机器人上的这段代码(连接路由器)时,我会得到一个错误:

    [ERROR] behavior.box :_safeCallOfUserMethod:281 _Behavior__lastUploadedChoregrapheBehaviorbehavior_1136151280__root__AbfrageKontostand_3__AuslesenJSONDatei_1: Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/naoqi.py", line 271, in _safeCallOfUserMethod
    func()
  File "<string>", line 20, in onInput_onStart
  File "/usr/lib/python2.7/site-packages/inaoqi.py", line 265, in <lambda>
    __getattr__ = lambda self, name: _swig_getattr(self, behavior, name)
  File "/usr/lib/python2.7/site-packages/inaoqi.py", line 55, in _swig_getattr
    raise AttributeError(name)
AttributeError: json

我已经尝试理解对应行中的代码,但无法修复错误。但是我知道我的对象f的类型是'file'。如何将 json 文件作为 json 文件打开?

您的问题来自于此:

self.json.load(f.get_Response())

... Choregraphe box 上没有"self.json" 这样的东西,导入json 然后做json.load。什么是 get_Response ?据我所知,Python 中的任何内容都不存在该方法。

您可能想先尝试制作一个独立的 python 脚本(不使用机器人),以便在尝试使用 choregraphe 之前读取您的 json 文件。会更容易。