dbus-python如何获取本机类型的响应?

sta*_*nka 6 python casting dbus

我正在使用dbus-python,我需要将响应(fe dbus.Dictionary - 但通常是任何响应)作为本机Python类型.是的,人们可以编写递归转换器,但我想我一定错过了一些明显的东西?必须有一种方法如何使用dbus将这些怪物转换回Python本机类​​型.或者不是吗?

dbus.Dictionary({dbus.String(u'CanGoNext'): dbus.Boolean(True, variant_level=1), dbus.String(u'CanPause'): dbus.String(u'MinimumRate'): dbus.Int32(14, variant_level=1) ...
Run Code Online (Sandbox Code Playgroud)

Mar*_*ner 1

你不需要。它们是本机类型的子类,因此您只需像使用本机类型一样使用它们即可:

>>> import dbus
>>> v = dbus.Dictionary({dbus.String(u'CanGoNext'): dbus.Boolean(True, variant_level=1), dbus.String(u'CanPause'): dbus.Boolean(False, variant_level=1), dbus.String(u'MinimumRate'): dbus.Int32(14, variant_level=1)})
>>> print v['MinimumRate']
14
>>> if v['CanGoNext']: print 'Go'
... 
Go
>>> if v['CanPause']: print 'Pause'
... 
>>> 
Run Code Online (Sandbox Code Playgroud)