Python:将 json 属性加载为数字

Python: Load json atrribute as number

我想从 json 文件中读取 python 字典,其中字典的键是数字(整数或浮点数)。

这是我的data.json

{
"number_of_uses":{  
    "weekday"   : {"0": 0.1, "1": 0.4, "2": 0.4, "3": 0.1},        
    "saturday"  : {"0": 0.1, "1": 0.4, "2": 0.4, "3": 0.1},
    "sunday"    : {"0": 0.1, "1": 0.4, "2": 0.4, "3": 0.1}
}
}

我想要 python 相当于这样的字典:

number_of_uses = { 
        "weekday"   : {0: 0.1, 1: 0.4, 2: 0.4, 3: 0.1},        
        "saturday"  : {0: 0.1, 1: 0.4, 2: 0.4, 3: 0.1},
        "sunday"    : {0: 0.1, 1: 0.4, 2: 0.4, 3: 0.1}}

我知道我可以简单地编写一个函数,我传递最里面的字典,return 一个带有 ints/floats 的字典。但我希望有一些集成功能可以对整个文件执行此操作。

感谢您的帮助。

编辑:具体来说:我希望每个“是”数字的 json 属性在 python dict[=14] 中表示为数字 (int/float) =]

编辑:将 {} 添加到我的 data.json

这里有一个针对这个特定案例的衬垫...:

numbered = {k:{int(inner_k):inner_v  for inner_k,inner_v in v.items()} for k,v in number_of_uses.items()}

示范:

import json
json_str  = '{"number_of_uses" : {"weekday" : {"0": 0.1, "1": 0.4, "2": 0.4, "3": 0.1}, "saturday"  : {"0": 0.1, "1": 0.4, "2": 0.4, "3": 0.1}, "sunday": {"0": 0.1, "1": 0.4, "2": 0.4, "3": 0.1}}}'
json_data = json.loads(json_str)
number_of_uses = json_data['number_of_uses']
numbered = {k:{int(inner_k):inner_v  for inner_k,inner_v in v.items()} for k,v in number_of_uses.items()}
print(numbered)
>>>{'weekday': {0: 0.1, 1: 0.4, 2: 0.4, 3: 0.1},
 'saturday': {0: 0.1, 1: 0.4, 2: 0.4, 3: 0.1},
 'sunday': {0: 0.1, 1: 0.4, 2: 0.4, 3: 0.1}}