Python数据库总线返回空列表



我有一个Python 2.7 DBus方法,它返回字符串列表。当列表不为空时,该方法有效。当它为空时,抛出一个异常,状态为"0";无法从空列表中猜测签名";。

方法如下:

@dbus.service.method('blecnx.comp.com.control', signature='as')
def getSlaveList(self):
global connectedSlaves
print("Interface:getSlaveList() getSlaveList called - length is: %s" % (len(connectedSlaves)))
if len(connectedSlaves) == 0:
return dbus.Array(dbus.Array([], signature='as'))
else:
return connectedSlaves

这里有一个例外:

ERROR:dbus.service:Unable to guess signature for arguments (dbus.Array([], signature=None),): <type 'exceptions.ValueError'>: Unable to guess signature from an empty list

我曾尝试更新DBus方法的签名,以明确声明它是一个字符串数组,但这并没有帮助。

如何确保该方法不会引发带有空列表的异常?

事实证明,您不能只指定"signature=‘as’",它必须是"out_signature=‘as"。

现在它起作用了。

最新更新