我上传了一个*。一个包含'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查看JSONENCODE
和JSONDECODE
。JSONENCODE
以下是一个快速示例,假设您的数据位于MATLAB变量对数据进行编码并返回JSON格式的字符向量。MathWorks文档
test_data
中,并将其写入变量json_file
中指定的文件。json_data = jsonencode(test_data);
writematrix(json_data,json_file);
注意:由于JSON规范的限制,一些MATLAB数据格式无法转换为JSON数据。然而,听起来你的数据很符合JSON规范。