我有以下 json 文件。
[
{
"arbitration_id": "0x244",
},
{
"arbitration_id": "0x144",
},
{
"arbitration_id": "0x19b",
},
]
当我使用 python 在 .py 文件中获取此值时,仲裁_id 的值将更改为 2047,类型=class<'int'>。当我使用 hex() 函数时,它将 type=class<'int'> 的 2047 转换为 type=class<'str'> 的“0x244”。
如何在 python 代码中使用 type=class<'int'> 获得 0x244 ?
我尝试过使用 hex() 函数、以 16 为基数的 int() 函数,如 int(2047,16),但我无法获取存储在 json 文件中的值 ( [{' Arbitration_id' : '0x244'}] ) as ( 0x244 with type=class<'int'> ) 在我的 python 文件中。
我将您的 json 数据保存在 test.json 文件中。并隐藏为十六进制。它对我有用。
import json
with open('test.json', 'r') as file:
dataArray = json.load(file)
# Access arbitration_id as string
for data in dataArray:
arbitration_id_str = data['arbitration_id']
print(f'arbitration_id_str:{arbitration_id_str}')
# Convert arbitration_id to integer
arbitration_id_int = int(arbitration_id_str, 16)
print(f'arbitration_id_int:{arbitration_id_int}')
输出:
arbitration_id_str:0x244
arbitration_id_int:580
arbitration_id_str:0x144
arbitration_id_int:324
arbitration_id_str:0x19b
arbitration_id_int:411