我有一个特定格式的 json 文件,但我想将其更改为我需要获取其中一个嵌套值并将它们投影为上层键的格式
我只尝试了 stackoverflow 的建议,并且厌倦了达到特定的嵌套值,但我无法提升它。
data = open('sampleDemo.json','r')
json_decode=json.load(data)
for item in data:
mydict={}
mydict['spk1'] = item.get('audioResponse').get('startTime').get('emotion').get.....
print mydict
期望的输出:
输入文件如下所示:
{
"audioResponse": [
{
"speaker":"spk1",
"startTime": "0.0",
"endTime": "15.239",
"emotion": "neutral",
"emotionScore": "0"
},
{
"speaker":"silence",
"startTime": "15.240",
"endTime": "16.900",
"emotion": "NA",
"emotionScore": "NA"
},
{
"speaker":"spk2",
"startTime": "16.932",
"endTime": "27.320",
"emotion": "happy",
"emotionScore": "2"
},
{
"speaker":"spk1",
"startTime": "27.977",
"endTime": "37.900",
"emotion": "anger",
"emotionScore": "-3"
}
]}
最佳答案
var data = {
"audioResponse": [{
"speaker": "spk1",
"startTime": "0.0",
"endTime": "15.239",
"emotion": "neutral",
"emotionScore": "0"
}, {
"speaker": "silence",
"startTime": "15.240",
"endTime": "16.900",
"emotion": "NA",
"emotionScore": "NA"
}, {
"speaker": "spk2",
"startTime": "16.932",
"endTime": "27.320",
"emotion": "happy",
"emotionScore": "2"
}, {
"speaker": "spk1",
"startTime": "27.977",
"endTime": "37.900",
"emotion": "anger",
"emotionScore": "-3"
}]
};
var result = {
audioResponse: []
};
for (var item of data.audioResponse) {
var existed = result.audioResponse.find(x => x[item.speaker]);
if (!existed)
result.audioResponse.push({
[item.speaker]: []
});
existedArray = result.audioResponse.find(x => x[item.speaker])[item.speaker];
var copy = {...item};
delete copy.speaker;
existedArray.push(copy);
}
console.log(result);
关于javascript - 如何将字典中的嵌套值更改为上层键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55390203/