如何解码dbus.Array fromat到十六进制或python中的字符串

时间:2016-12-21 18:48:02

标签: python-3.x dbus

如何解码:

dbus.Array([dbus.Byte(1), dbus.Byte(35)], signature=dbus.Signature('y'))
Python代码中的

HEX 字符串

2 个答案:

答案 0 :(得分:1)

正如DBus specification所说,y表示字节。 因此dbus.Array([...], signature=dbus.Signature('y'))是一个字节数组。

让我们考虑一下这个值:

value = dbus.Array([dbus.Byte(76), dbus.Byte(97), dbus.Byte(98), dbus.Byte(65), dbus.Byte(80), dbus.Byte(97), dbus.Byte(114), dbus.Byte(116)], signature=dbus.Signature('y'))
  • 如果您知道您的值包含字符串

    print("value:%s" % ''.join([str(v) for v in value]))
    # Will print 'value:LabAPart'
    
  • 对于字节数组:

    print("value:%s" % [bytes([v]) for v in value])
    # Will print 'value:[b'L', b'a', b'b', b'A', b'P', b'a', b'r', b't']'
    
  • 对于整数数组:

    print("value:%s" % [int(v) for v in value])
    # Will print 'value:[76, 97, 98, 65, 80, 97, 114, 116]'
    

答案 1 :(得分:0)

也许您想要做的是将其转换为字节;下面你可以看到我以前把它写成二进制文件的方式。

React.Component