Python: чтение шестнадцатеричного числа из JSON и передача в библиотеку - PullRequest
0 голосов
/ 26 мая 2020

Когда я назначаю переменную типа hex_no = 0x67 и передаю ее нужной библиотеке, она работает нормально. Однако, если я получу 0x67 из файла JSON, его тип будет строкой, и я не знаю, как изменить его на тот же формат, что и эта строка hex_no = 0x67. Как мне получить такой же формат при чтении из json?

Это образец файла json

{"измерение": "давление", "i2c_address": "0x67", "device_type": "N"}

Ответы [ 2 ]

1 голос
/ 26 мая 2020

Когда вы передаете 0x67 или любое другое шестнадцатеричное число в эту библиотеку, вы фактически передаете целое число. Вы можете проверить это, выполнив:

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

Следовательно, вам нужно преобразовать шестнадцатеричное представление этого числа (т. Е. Строки) в целое число как таковое. Вы можете сделать это, используя класс int, передав 16 в качестве аргумента base его конструктору.

num = int('0x67', 16)
0 голосов
/ 26 мая 2020

Вы можете использовать следующее:

int(hex_no, 16)

См. Документацию для int и его базового аргумента.

Если вам нужна строка, оберните ее в hex().

...