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 文件。会更容易。
我在 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 文件。会更容易。