0

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

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 的类型是“文件”。如何将 json 文件作为 json 文件打开?

4

1 回答 1

1

您的问题来自于此:

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

... Choregraphe 框上没有“self.json”之类的东西,导入 json 然后执行 json.load。什么是 get_Response ?我所知道的 Python 中的任何东西都不存在该方法。

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

于 2018-07-24T08:16:10.977 回答