javascript - 如何将字典中的嵌套值更改为上层键

标签 javascript json dictionary

我有一个特定格式的 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

期望的输出:

enter image description here

输入文件如下所示:

{
   "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/

相关文章:

javascript - 如果不包含父 key ,则无法获取 Firebase 输出

android - 应用程序在 httprequest 上频繁崩溃

python - 合并字典的字典和总和值

javascript - 对于JavaScript或jQuery,如何使transitionend事件不触发?

javascript - 唯一识别传单标记

python - 使用列表中的值过滤字典中的键、值

python - 我将如何在 Python 中实现带有抽象基类的字典?

javascript - 使用 Node.js 的 native 抽象时如何管理内存?

javascript - Ajax 调用 Controller 需要很长时间

javascript - uint8array javascript 的总和