【发布时间】:2015-07-27 16:26:58
【问题描述】:
有课
class MyService(dbus.service.Object):
def __init__(self):
bus_name = dbus.service.BusName(__dbus_object_name__, bus=dbus.SessionBus())
dbus.service.Object.__init__(self, bus_name, __dbus_object_path__)
@dbus.service.signal(__dbus_object_name__, signature='a{sv}')
def TickSignal(self, info):
print(info)
s = MyService()
尝试发送嵌套字典
s.TickSignal({'a': 'b', 'b': 1, 'c': {'a':'a' }}) 工作正常,但如果嵌套 dict 包含数字会导致异常
s.TickSignal({'a': 'b', 'b': 1, 'c' :{'a':'a', 'b':1 }})
Traceback (most recent call last):
File "sig.py", line 26, in <module>
s.TickSignal({'a': 'b', 'b': 1, 'c':{'a':'a', 'b':1}})
File "/usr/lib/python3/dist-packages/dbus/decorators.py", line 314, in emit_signal
message.append(signature=signature, *args)
TypeError: Expected a string or unicode object
【问题讨论】: