如何将多维字典转换为json文件?



我上传了一个*。一个包含'struct'的文件到我的jupyter实验室:

from pymatreader import read_mat
data = read_mat(mat_file)

现在我有一个多维字典,例如:

data['Forces']['Ss1']['flap'].keys()

给出输出:

dict_keys(['lf', 'rf', 'lh', 'rh'])

我想将其转换为JSON文件,完全通过已经存在的键,而不是手动这样做,因为我想对许多*执行它。

编辑:不幸的是,我不再有访问MATLAB。期望输出的示例如下:

json_format = {
"Forces": {
"Ss1": {
"flap": {
"lf": [1,2,3,4],
"rf": [4,5,6,7],
"lh": [23 ,5,6,654,4],
"rh": [4 ,34 ,35, 56, 66]
}
}
}
}

另一个编辑:因此,在制作了子键列表(我不会详细说明)之后,我这样做:

FORCES = []
for ind in individuals:
for force in forces:
for wing in wings:
FORCES.append({
ind: {
force: {
wing: data['Forces'][ind][force][wing].tolist()

}
}
})

然后,保存:

with open(f'{ROOT_PATH}/Forces.json', 'w') as f:
json.dump(FORCES, f)

这是有效的,但只是因为我手动寻找所有的键…此外,出于某种原因,我在json文件的开始和结束处都有方括号。

json包将把字典输出到JSON:

import json
with open('filename.json', 'w') as f:
json.dump(data, f)

如果您正在使用MATLAB- r2016b或更高版本,并希望直接从MATLAB到JSON查看JSONENCODEJSONDECODEJSONENCODE

对数据进行编码并返回JSON格式的字符向量。MathWorks文档

以下是一个快速示例,假设您的数据位于MATLAB变量test_data中,并将其写入变量json_file 中指定的文件。
json_data = jsonencode(test_data);
writematrix(json_data,json_file);

注意:由于JSON规范的限制,一些MATLAB数据格式无法转换为JSON数据。然而,听起来你的数据很符合JSON规范。

相关内容

  • 没有找到相关文章

最新更新