【发布时间】:2021-02-26 20:09:50
【问题描述】:
我已使用以下方法将包含“结构”的 *.mat 文件上传到我的 jupyter 实验室:
from pymatreader import read_mat
data = read_mat(mat_file)
现在我有一个多维字典,例如:
data['Forces']['Ss1']['flap'].keys()
给出输出:
dict_keys(['lf', 'rf', 'lh', 'rh'])
我想完全通过已经存在的键将其转换为 JSON 文件,而无需手动执行此操作,因为我想对具有各种键号的许多 *.mat 文件执行它。
编辑: 不幸的是,我不再可以访问 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 python-3.x matlab dictionary