我正在使用内置 SNMP 库从服务器获取一些数据。现在,当我取回它时,它在列表中显示为
.>>> [ObjectName(1.2.6.1.4.1.111.1.4.1.7), Integer(21)]
当我打印出x[0]
时(假设 x 是该响应^)我看到 x[1]
为 1.2.6.1.4.1.111.1.4.1.7 和 21但当我这样做时type(x[0])
我得到<type 'instance'>
.
现在我的问题是有没有办法找到 x[1]
的类型并将其转换为那个? ( x[0]
始终是字符串,但 x[1]
可以是整数、字符串或 float 等。
有没有办法读取“Integer”(在本例中)?
谢谢
编辑:
我认为我没有描述清楚。我真的很关心x[0]
无论如何,我想转换 x[1]
无需修改我从中获取 SNMP 数据的类中的任何内容。在此示例中,它是 int
但它可以是 float 或字符串。我正在寻找一种方法来确定该实例的类型,然后将其转换为该类型
最佳答案
你得到<type 'instance'>
因为图书馆正在使用 old-style classes 。您可以使用 x.__class__
获取类名。在您的示例中 x[0].__class__.__name__
将是ObjectName
.
关于Python 类型 'Instance' 转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8996265/