У меня есть файл json следующим образом
{
"devices" :[
{
"Manufacturer name": "Sony",
"vendor_id":"8087" ,
"product_id" : "07da"
},
{
"Manufacturer name": "Sandisk",
"vendor_id": "1d6b",
"product_id" : "0002"
},
{
"Manufacturer name": "Chicony Electronics",
"vendor_id": "04f2",
"product_id" : "b381"
}
]
}
Этот файл json содержит производителя и идентификатор продукта USB-устройств, подключенных к моему ноутбуку. Я проверяю, подключено ли USB-устройство к ноутбуку или нет, используя этот файл JSON. Поставщик и идентификатор продукта указаны в hex
. Поскольку json
не может использовать hex
, я записал эти значения в строковом формате. Я на самом деле использую pyusb
модуль Python для проверки подключения устройств, как следует
import usb.core
def get_hex(hex_str):
hex_int = int(hex_str, 16)
return hex(hex_int)
vendor_id = get_hex("8087")
product_id = get_hex("07da")
dev = usb.core.find(idVendor=vendor_id, idProduct=product_id)
if dev is None:
print "Disconnected"
else:
print "Connected"
Но когда я запускаю этот код, я получаю сообщение для печати как "Disconnected"
Здесь на самом деле проблема в том, что usb.core.find()
функция нуждается в значении в int
, но значение get_hex()
возвращает функцию string
. Однажды измените строку dev = usb.core.find(idVendor=vendor_id, idProduct=product_id)
в приведенном выше коде на dev = usb.core.find(idVendor=0x8087, idProduct=0x07da)
. Приведенный выше код работает правильно. Пожалуйста, дайте мне знать, как вернуть значение из get_hex()
в int
.