2
私はUbuntu 16.04でPython Dbusを使用しています。私はクライアントにDBusを介して辞書のリストを返すが、文字列の配列を返すことしかできないようだ。 dbusの署名デコレータを「as {v}」に変更した場合、「ValueError:型の破損」という例外が発生します。 DBus上で辞書のリストを返すにはどうすればいいですか?dbus-python辞書の配列を返す方法
@dbus.service.method("com.example.service.BtScanList", in_signature='', out_signature='as')
def getScanList(self):
btMsg("Starting BT Scan List...")
# Populate device lists (returns dictionary --> { 'mac_address' : xxx , 'name' : xxx }
self.discoveredDevs = self.getScannedDevices()
returnList = []
for dev in self.discoveredDevs:
returnList.append(dev["name"])
return returnList
EDIT:これも動作しません:
@dbus.service.method("com.example.service.BtScanList", in_signature='', out_signature='a{sv}')
def getScanList(self):
btMsg("Starting BT Scan List...")
# Populate device lists (returns dictionary --> { 'mac_address' : xxx , 'name' : xxx }
self.discoveredDevs = self.getScannedDevices()
returnList = dbus.Array()
for dev in self.discoveredDevs:
btMsg(dev)
returnList.append(dbus.Dictionary(dev, signature='sv'))
return returnList