在python中转换为十六进制

问题描述 投票:0回答:1

我有以下 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 文件中。

python json hex
1个回答
0
投票

我将您的 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
© www.soinside.com 2019 - 2024. All rights reserved.