json.dump不支持key是int的dict,在编码存储的时候会把所有的int型key写成str类型的
所以在读取json文件后,用本方法将所有的被解码成str的int型key还原成int
import json
def convert_json_key(param_dict):
"""
json.dump不支持key是int的dict,在编码存储的时候会把所有的int型key写成str类型的
所以在读取json文件后,用本方法将所有的被解码成str的int型key还原成int
"""
new_dict = dict()
for key, value in param_dict.items():
if isinstance(value, (dict,)):
res_dict = convert_json_key(value)
try:
new_key = int(key)
new_dict[new_key] = res_dict
except:
new_dict[key] = res_dict
else:
try:
new_key = int(key)
new_dict[new_key] = value
except:
new_dict[key] = value
return new_dict
if __name__ == '__main__':
f = open('./json', 'r')
file_dict = json.load(f)
file_dict = convert_json_key(file_dict)
print(file_dict)
f.close()