Python:从 JSON 中读取一个十六进制数并传递给一个库

Python: Reading a hex number from JSON and passing to a library

当我分配 hex_no = 0x67 之类的变量并将其传递给我想要的库时,它工作正常。但是,如果我从 JSON 文件中检索 0x67,它的类型是一个字符串,我不知道如何将它更改为与此行 hex_no = 0x67 相同的格式。从 json 读取时,如何将其转换为相同的格式?

这是 json 文件的示例

{ "measurement" : "pressure", "i2c_address":“0x67”, "device_type": "N" }

您可以使用以下内容:

int(hex_no, 16)

请参阅 int 及其基本参数的文档。

如果你想要它作为一个字符串,将它包装在 hex().

当您将 0x67 或任何其他十六进制数传递给您想要的那个库时,您实际上传递的是一个整数。您可以通过以下方式检查:

>>> type(0x67)
<class 'int'>

因此,您需要将该数字(即字符串)的十六进制表示形式转换为整数本身。您可以使用 int class,将 16 作为 base 参数传递给其构造函数。

num = int('0x67', 16)