количество предметов со строкой - PullRequest
0 голосов
/ 06 мая 2019

Мне нужно подсчитать, сколько Mac-адресов имеют ухудшения на уровне документов

Я пытался обойти этот фильтр из другого примера на этом сайте, но проблема в том, что мне нужно подсчитать, сколько MAC-адресов имеетимя нарушения "docsis-level"

[
  {
    "mac": "BC:2E:48:D7:E6:EF",
    "timestamp": "2019-05-06T06:06:13.568Z",
    "impairments": [
      {
        "name": "level",
        "impaired": true,
        "startFrequency": 76.279,
        "stopFrequency": 953.721,
        "level": 52.4
      },
      {
        "name": "tilt",
        "impaired": false,
        "startFrequency": 123,
        "stopFrequency": 795,
        "level": 8.28
      },
      {
        "name": "roll-off",
        "impaired": false,
        "startFrequency": 699,
        "stopFrequency": 795,
        "level": 0
      },
      {
        "name": "suck-out",
        "impaired": false,
        "startFrequency": 0,
        "stopFrequency": 0,
        "level": 0
      },
      {
        "name": "peak",
        "impaired": false,
        "startFrequency": 0,
        "stopFrequency": 0,
        "level": 0
      },
      {
        "name": "ripple",
        "impaired": true,
        "startFrequency": 119.932,
        "stopFrequency": 798.037,
        "level": 0
      },
      {
        "name": "fm-ingress",
        "impaired": false,
        "startFrequency": 0,
        "stopFrequency": 0,
        "level": 0
      },
      {
        "name": "lte-ingress",
        "impaired": false,
        "startFrequency": 0,
        "stopFrequency": 0,
        "level": 0
      },
      {
        "name": "adjacency",
        "impaired": false,
        "startFrequency": 179.982,
        "stopFrequency": 186.018,
        "level": 1.3
      },
      {
        "name": "channel-snr",
        "impaired": false,
        "startFrequency": 141.025,
        "stopFrequency": 141.025,
        "level": 33.7
      },
      {
        "name": "channel-level",
        "impaired": true,
        "startFrequency": 639.014,
        "stopFrequency": 639.014,
        "level": 27.47
      },
      {
        "name": "channel-tilt",
        "impaired": false,
        "startFrequency": 165.107,
        "stopFrequency": 165.107,
        "level": 1.21
      },
      {
        "name": "channel-icfr",
        "impaired": false,
        "startFrequency": 752.803,
        "stopFrequency": 752.803,
        "level": 6.4
      },
      {
        "name": "channel-guard-band",
        "impaired": true,
        "startFrequency": 531.025,
        "stopFrequency": 531.025,
        "level": -32.33
      },
      {
        "name": "correctable-cer",
        "impaired": false,
        "startFrequency": 603,
        "stopFrequency": 603,
        "level": 0
      },
      {
        "name": "uncorrectable-cer",
        "impaired": false,
        "startFrequency": 603,
        "stopFrequency": 603,
        "level": 0
      },
      {
        "name": "docsis-snr",
        "impaired": false,
        "startFrequency": 639,
        "stopFrequency": 639,
        "level": 38.9
      },
      {
        "name": "docsis-level",
        "impaired": false,
        "startFrequency": 633,
        "stopFrequency": 633,
        "level": 7.8
      }
    ],
    "ofdmData": {
      "numChannels": 0,
      "numProfiles": 0
    }
  },
  {
    "mac": "BC:2E:48:D7:EA:24",
    "timestamp": "2019-05-06T06:06:13.536Z",
    "impairments": [
      {
        "name": "level",
        "impaired": true,
        "startFrequency": 76.279,
        "stopFrequency": 953.721,
        "level": 52.6
      },
      {
        "name": "tilt",
        "impaired": false,
        "startFrequency": 123,
        "stopFrequency": 795,
        "level": 8.69
      },
      {
        "name": "roll-off",
        "impaired": false,
        "startFrequency": 699,
        "stopFrequency": 795,
        "level": 0
      },
      {
        "name": "suck-out",
        "impaired": false,
        "startFrequency": 0,
        "stopFrequency": 0,
        "level": 0
      },
      {
        "name": "peak",
        "impaired": false,
        "startFrequency": 0,
        "stopFrequency": 0,
        "level": 0
      },
      {
        "name": "ripple",
        "impaired": false,
        "startFrequency": 0,
        "stopFrequency": 0,
        "level": 0
      },
      {
        "name": "fm-ingress",
        "impaired": false,
        "startFrequency": 0,
        "stopFrequency": 0,
        "level": 0
      },
      {
        "name": "lte-ingress",
        "impaired": false,
        "startFrequency": 0,
        "stopFrequency": 0,
        "level": 0
      },
      {
        "name": "adjacency",
        "impaired": false,
        "startFrequency": 179.982,
        "stopFrequency": 186.018,
        "level": 1.4
      },
      {
        "name": "channel-snr",
        "impaired": false,
        "startFrequency": 141.025,
        "stopFrequency": 141.025,
        "level": 36.1
      },
      {
        "name": "channel-level",
        "impaired": true,
        "startFrequency": 639.014,
        "stopFrequency": 639.014,
        "level": 27.46
      },
      {
        "name": "channel-tilt",
        "impaired": false,
        "startFrequency": 687.002,
        "stopFrequency": 687.002,
        "level": 0.65
      },
      {
        "name": "channel-icfr",
        "impaired": false,
        "startFrequency": 392.861,
        "stopFrequency": 392.861,
        "level": 5.4
      },
      {
        "name": "channel-guard-band",
        "impaired": true,
        "startFrequency": 507.061,
        "stopFrequency": 507.061,
        "level": -32.9
      },
      {
        "name": "correctable-cer",
        "impaired": false,
        "startFrequency": 693,
        "stopFrequency": 693,
        "level": 0
      },
      {
        "name": "uncorrectable-cer",
        "impaired": false,
        "startFrequency": 693,
        "stopFrequency": 693,
        "level": 0
      },
      {
        "name": "docsis-snr",
        "impaired": false,
        "startFrequency": 651,
        "stopFrequency": 651,
        "level": 39.3
      },
      {
        "name": "docsis-level",
        "impaired": false,
        "startFrequency": 651,
        "stopFrequency": 651,
        "level": 8
      }
    ],
    "ofdmData": {
      "numChannels": 0,
      "numProfiles": 0
    }
  },
  {
    "mac": "B0:39:56:4B:B2:38",
    "timestamp": "2019-05-06T05:05:34Z",
    "impairments": [
      {
        "name": "channel-snr",
        "impaired": false,
        "startFrequency": 663,
        "stopFrequency": 663,
        "level": 0
      },
      {
        "name": "channel-level",
        "impaired": false,
        "startFrequency": 663,
        "stopFrequency": 663,
        "level": 0
      },
      {
        "name": "channel-tilt",
        "impaired": false,
        "startFrequency": 663,
        "stopFrequency": 663,
        "level": 0
      },
      {
        "name": "channel-icfr",
        "impaired": false,
        "startFrequency": 663,
        "stopFrequency": 663,
        "level": 0
      },
      {
        "name": "channel-guard-band",
        "impaired": false,
        "startFrequency": 663,
        "stopFrequency": 663,
        "level": 0
      },
      {
        "name": "correctable-cer",
        "impaired": false,
        "startFrequency": 663,
        "stopFrequency": 663,
        "level": 0
      },
      {
        "name": "uncorrectable-cer",
        "impaired": false,
        "startFrequency": 663,
        "stopFrequency": 663,
        "level": 0
      },
      {
        "name": "docsis-snr",
        "impaired": false,
        "startFrequency": 645,
        "stopFrequency": 645,
        "level": 39
      },
      {
        "name": "docsis-level",
        "impaired": false,
        "startFrequency": 811,
        "stopFrequency": 904.95,
        "level": -5.9
      },
      {
        "name": "ofdm-mer-mean",
        "impaired": false,
        "startFrequency": 811,
        "stopFrequency": 904.95,
        "level": 38.85
      },
      {
        "name": "ofdm-mer-sd",
        "impaired": false,
        "startFrequency": 811,
        "stopFrequency": 904.95,
        "level": 0.58
      },
      {
        "name": "ofdm-amp-mean",
        "impaired": false,
        "startFrequency": 811,
        "stopFrequency": 904.95,
        "level": 0.02
      },
      {
        "name": "ofdm-amp-rms",
        "impaired": false,
        "startFrequency": 811,
        "stopFrequency": 904.95,
        "level": 0.4
      },
      {
        "name": "ofdm-amp-slope",
        "impaired": false,
        "startFrequency": 811,
        "stopFrequency": 904.95,
        "level": -0.013
      },
      {
        "name": "ofdm-amp-pk-pk",
        "impaired": false,
        "startFrequency": 811,
        "stopFrequency": 904.95,
        "level": 2.93
      },
      {
        "name": "ofdm-gd-mean",
        "impaired": false,
        "startFrequency": 811,
        "stopFrequency": 904.95,
        "level": 1778
      },
      {
        "name": "ofdm-gd-rms",
        "impaired": false,
        "startFrequency": 811,
        "stopFrequency": 904.95,
        "level": 17.26
      },
      {
        "name": "ofdm-gd-slope",
        "impaired": false,
        "startFrequency": 811,
        "stopFrequency": 904.95,
        "level": 0.029
      },
      {
        "name": "ofdm-gd-pk-pk",
        "impaired": false,
        "startFrequency": 811,
        "stopFrequency": 904.95,
        "level": 86.79
      },
      {
        "name": "ofdm-plc-cwer",
        "impaired": false,
        "startFrequency": 811,
        "stopFrequency": 904.95,
        "level": 0
      },
      {
        "name": "ofdm-ncp-fail",
        "impaired": false,
        "startFrequency": 811,
        "stopFrequency": 904.95,
        "level": 0
      }
    ],
    "ofdmData": {
      "numChannels": 1,
      "numProfiles": 4
    }
  },
  {
    "mac": "B0:39:56:4C:BF:40",
    "timestamp": "2019-05-06T05:05:34Z",
    "impairments": [
      {
        "name": "channel-snr",
        "impaired": false,
        "startFrequency": 663,
        "stopFrequency": 663,
        "level": 0
      },
      {
        "name": "channel-level",
        "impaired": false,
        "startFrequency": 663,
        "stopFrequency": 663,
        "level": 0
      },
      {
        "name": "channel-tilt",
        "impaired": false,
        "startFrequency": 663,
        "stopFrequency": 663,
        "level": 0
      },
      {
        "name": "channel-icfr",
        "impaired": false,
        "startFrequency": 663,
        "stopFrequency": 663,
        "level": 0
      },
      {
        "name": "channel-guard-band",
        "impaired": false,
        "startFrequency": 663,
        "stopFrequency": 663,
        "level": 0
      },
      {
        "name": "correctable-cer",
        "impaired": false,
        "startFrequency": 663,
        "stopFrequency": 663,
        "level": 0
      },
      {
        "name": "uncorrectable-cer",
        "impaired": false,
        "startFrequency": 663,
        "stopFrequency": 663,
        "level": 0
      },
      {
        "name": "docsis-snr",
        "impaired": false,
        "startFrequency": 675,
        "stopFrequency": 675,
        "level": 39.9
      },
      {
        "name": "docsis-level",
        "impaired": false,
        "startFrequency": 615,
        "stopFrequency": 615,
        "level": 6.9
      },
      {
        "name": "ofdm-mer-mean",
        "impaired": false,
        "startFrequency": 811,
        "stopFrequency": 904.95,
        "level": 40.07
      },
      {
        "name": "ofdm-mer-sd",
        "impaired": false,
        "startFrequency": 811,
        "stopFrequency": 904.95,
        "level": 0.58
      },
      {
        "name": "ofdm-amp-mean",
        "impaired": false,
        "startFrequency": 811,
        "stopFrequency": 904.95,
        "level": -0.03
      },
      {
        "name": "ofdm-amp-rms",
        "impaired": false,
        "startFrequency": 811,
        "stopFrequency": 904.95,
        "level": 0.39
      },
      {
        "name": "ofdm-amp-slope",
        "impaired": false,
        "startFrequency": 811,
        "stopFrequency": 904.95,
        "level": 0.002
      },
      {
        "name": "ofdm-amp-pk-pk",
        "impaired": false,
        "startFrequency": 811,
        "stopFrequency": 904.95,
        "level": 2.06
      },
      {
        "name": "ofdm-gd-mean",
        "impaired": false,
        "startFrequency": 811,
        "stopFrequency": 904.95,
        "level": 1882
      },
      {
        "name": "ofdm-gd-rms",
        "impaired": false,
        "startFrequency": 811,
        "stopFrequency": 904.95,
        "level": 9.14
      },
      {
        "name": "ofdm-gd-slope",
        "impaired": false,
        "startFrequency": 811,
        "stopFrequency": 904.95,
        "level": 0.032
      },
      {
        "name": "ofdm-gd-pk-pk",
        "impaired": false,
        "startFrequency": 811,
        "stopFrequency": 904.95,
        "level": 62.88
      },
      {
        "name": "ofdm-plc-cwer",
        "impaired": false,
        "startFrequency": 811,
        "stopFrequency": 904.95,
        "level": 0
      },
      {
        "name": "ofdm-ncp-fail",
        "impaired": false,
        "startFrequency": 811,
        "stopFrequency": 904.95,
        "level": 0
      }
    ],
    "ofdmData": {
      "numChannels": 1,
      "numProfiles": 4
    }
  },
  {
    "mac": "A0:04:60:FC:8F:90",
    "timestamp": "2019-05-06T05:05:34Z",
    "impairments": [
      {
        "name": "channel-snr",
        "impaired": false,
        "startFrequency": 669,
        "stopFrequency": 669,
        "level": 0
      },
      {
        "name": "channel-level",
        "impaired": false,
        "startFrequency": 669,
        "stopFrequency": 669,
        "level": 0
      },
      {
        "name": "channel-tilt",
        "impaired": false,
        "startFrequency": 669,
        "stopFrequency": 669,
        "level": 0
      },
      {
        "name": "channel-icfr",
        "impaired": false,
        "startFrequency": 669,
        "stopFrequency": 669,
        "level": 0
      },
      {
        "name": "channel-guard-band",
        "impaired": false,
        "startFrequency": 669,
        "stopFrequency": 669,
        "level": 0
      },
      {
        "name": "correctable-cer",
        "impaired": false,
        "startFrequency": 669,
        "stopFrequency": 669,
        "level": 0
      },
      {
        "name": "uncorrectable-cer",
        "impaired": false,
        "startFrequency": 669,
        "stopFrequency": 669,
        "level": 0
      },
      {
        "name": "docsis-snr",
        "impaired": false,
        "startFrequency": 645,
        "stopFrequency": 645,
        "level": 39.3
      },
      {
        "name": "docsis-level",
        "impaired": false,
        "startFrequency": 609,
        "stopFrequency": 609,
        "level": 12.4
      },
      {
        "name": "ofdm-mer-mean",
        "impaired": false,
        "startFrequency": 811,
        "stopFrequency": 904.95,
        "level": 39.84
      },
      {
        "name": "ofdm-mer-sd",
        "impaired": false,
        "startFrequency": 811,
        "stopFrequency": 904.95,
        "level": 0.58
      },
      {
        "name": "ofdm-amp-mean",
        "impaired": false,
        "startFrequency": 811,
        "stopFrequency": 904.95,
        "level": -0.03
      },
      {
        "name": "ofdm-amp-rms",
        "impaired": false,
        "startFrequency": 811,
        "stopFrequency": 904.95,
        "level": 0.42
      },
      {
        "name": "ofdm-amp-slope",
        "impaired": false,
        "startFrequency": 811,
        "stopFrequency": 904.95,
        "level": 0.011
      },
      {
        "name": "ofdm-amp-pk-pk",
        "impaired": false,
        "startFrequency": 811,
        "stopFrequency": 904.95,
        "level": 2.37
      },
      {
        "name": "ofdm-gd-mean",
        "impaired": false,
        "startFrequency": 811,
        "stopFrequency": 904.95,
        "level": 1807
      },
      {
        "name": "ofdm-gd-rms",
        "impaired": false,
        "startFrequency": 811,
        "stopFrequency": 904.95,
        "level": 9.49
      },
      {
        "name": "ofdm-gd-slope",
        "impaired": false,
        "startFrequency": 811,
        "stopFrequency": 904.95,
        "level": 0.027
      },
      {
        "name": "ofdm-gd-pk-pk",
        "impaired": false,
        "startFrequency": 811,
        "stopFrequency": 904.95,
        "level": 65.65
      },
      {
        "name": "ofdm-plc-cwer",
        "impaired": false,
        "startFrequency": 811,
        "stopFrequency": 904.95,
        "level": 0
      },
      {
        "name": "ofdm-ncp-fail",
        "impaired": false,
        "startFrequency": 811,
        "stopFrequency": 904.95,
        "level": 0
      }
    ],
    "ofdmData": {
      "numChannels": 1,
      "numProfiles": 4
    }
  },
  {
    "mac": "B0:DA:F9:11:CD:25",
    "timestamp": "2019-05-06T05:05:34Z",
    "impairments": [
      {
        "name": "channel-snr",
        "impaired": false,
        "startFrequency": 663,
        "stopFrequency": 663,
        "level": 0
      },
      {
        "name": "channel-level",
        "impaired": false,
        "startFrequency": 663,
        "stopFrequency": 663,
        "level": 0
      },
      {
        "name": "channel-tilt",
        "impaired": false,
        "startFrequency": 663,
        "stopFrequency": 663,
        "level": 0
      },
      {
        "name": "channel-icfr",
        "impaired": false,
        "startFrequency": 663,
        "stopFrequency": 663,
        "level": 0
      },
      {
        "name": "channel-guard-band",
        "impaired": false,
        "startFrequency": 663,
        "stopFrequency": 663,
        "level": 0
      },
      {
        "name": "correctable-cer",
        "impaired": false,
        "startFrequency": 663,
        "stopFrequency": 663,
        "level": 0
      },
      {
        "name": "uncorrectable-cer",
        "impaired": false,
        "startFrequency": 663,
        "stopFrequency": 663,
        "level": 0
      },
      {
        "name": "docsis-snr",
        "impaired": false,
        "startFrequency": 645,
        "stopFrequency": 645,
        "level": 37.9
      },
      {
        "name": "docsis-level",
        "impaired": false,
        "startFrequency": 811,
        "stopFrequency": 904.95,
        "level": -11.1
      },
      {
        "name": "ofdm-mer-mean",
        "impaired": false,
        "startFrequency": 811,
        "stopFrequency": 904.95,
        "level": 37.58
      },
      {
        "name": "ofdm-mer-sd",
        "impaired": false,
        "startFrequency": 811,
        "stopFrequency": 904.95,
        "level": 0.63
      },
      {
        "name": "ofdm-amp-mean",
        "impaired": false,
        "startFrequency": 811,
        "stopFrequency": 904.95,
        "level": -0.03
      },
      {
        "name": "ofdm-amp-rms",
        "impaired": false,
        "startFrequency": 811,
        "stopFrequency": 904.95,
        "level": 0.49
      },
      {
        "name": "ofdm-amp-slope",
        "impaired": false,
        "startFrequency": 811,
        "stopFrequency": 904.95,
        "level": -0.013
      },
      {
        "name": "ofdm-amp-pk-pk",
        "impaired": false,
        "startFrequency": 811,
        "stopFrequency": 904.95,
        "level": 3.21
      },
      {
        "name": "ofdm-gd-mean",
        "impaired": false,
        "startFrequency": 811,
        "stopFrequency": 904.95,
        "level": 1839
      },
      {
        "name": "ofdm-gd-rms",
        "impaired": false,
        "startFrequency": 811,
        "stopFrequency": 904.95,
        "level": 17.59
      },
      {
        "name": "ofdm-gd-slope",
        "impaired": false,
        "startFrequency": 811,
        "stopFrequency": 904.95,
        "level": 0.027
      },
      {
        "name": "ofdm-gd-pk-pk",
        "impaired": false,
        "startFrequency": 811,
        "stopFrequency": 904.95,
        "level": 95.32
      },
      {
        "name": "ofdm-plc-cwer",
        "impaired": false,
        "startFrequency": 811,
        "stopFrequency": 904.95,
        "level": 0
      },
      {
        "name": "ofdm-ncp-fail",
        "impaired": false,
        "startFrequency": 811,
        "stopFrequency": 904.95,
        "level": 0
      }
    ],
    "ofdmData": {
      "numChannels": 1,
      "numProfiles": 4
    }
  },
  {
    "mac": "D4:0A:A9:00:00:F1",
    "timestamp": "2019-05-06T05:05:34Z",
    "impairments": [
      {
        "name": "channel-snr",
        "impaired": false,
        "startFrequency": 621,
        "stopFrequency": 621,
        "level": 0
      },
      {
        "name": "channel-level",
        "impaired": false,
        "startFrequency": 621,
        "stopFrequency": 621,
        "level": 0
      },
      {
        "name": "channel-tilt",
        "impaired": false,
        "startFrequency": 621,
        "stopFrequency": 621,
        "level": 0
      },
      {
        "name": "channel-icfr",
        "impaired": false,
        "startFrequency": 621,
        "stopFrequency": 621,
        "level": 0
      },
      {
        "name": "channel-guard-band",
        "impaired": false,
        "startFrequency": 621,
        "stopFrequency": 621,
        "level": 0
      },
      {
        "name": "correctable-cer",
        "impaired": false,
        "startFrequency": 621,
        "stopFrequency": 621,
        "level": 0
      },
      {
        "name": "uncorrectable-cer",
        "impaired": false,
        "startFrequency": 621,
        "stopFrequency": 621,
        "level": 0
      },
      {
        "name": "docsis-snr",
        "impaired": false,
        "startFrequency": 639,
        "stopFrequency": 639,
        "level": 37.3
      },
      {
        "name": "docsis-level",
        "impaired": false,
        "startFrequency": 615,
        "stopFrequency": 615,
        "level": 11.6
      }
    ],
    "ofdmData": {
      "numChannels": 0,
      "numProfiles": 0
    }
  },
  {
    "mac": "B0:39:56:4B:B1:F8",
    "timestamp": "2019-05-06T05:05:34Z",
    "impairments": [
      {
        "name": "channel-snr",
        "impaired": false,
        "startFrequency": 669,
        "stopFrequency": 669,
        "level": 0
      },
      {
        "name": "channel-level",
        "impaired": false,
        "startFrequency": 669,
        "stopFrequency": 669,
        "level": 0
      },
      {
        "name": "channel-tilt",
        "impaired": false,
        "startFrequency": 669,
        "stopFrequency": 669,
        "level": 0
      },
      {
        "name": "channel-icfr",
        "impaired": false,
        "startFrequency": 669,
        "stopFrequency": 669,
        "level": 0
      },
      {
        "name": "channel-guard-band",
        "impaired": false,
        "startFrequency": 669,
        "stopFrequency": 669,
        "level": 0
      },
      {
        "name": "correctable-cer",
        "impaired": false,
        "startFrequency": 669,
        "stopFrequency": 669,
        "level": 0
      },
      {
        "name": "uncorrectable-cer",
        "impaired": false,
        "startFrequency": 669,
        "stopFrequency": 669,
        "level": 0
      },
      {
        "name": "docsis-snr",
        "impaired": false,
        "startFrequency": 675,
        "stopFrequency": 675,
        "level": 39.4
      },
      {
        "name": "docsis-level",
        "impaired": false,
        "startFrequency": 811,
        "stopFrequency": 904.95,
        "level": 4.4
      },
      {
        "name": "ofdm-mer-mean",
        "impaired": false,
        "startFrequency": 811,
        "stopFrequency": 904.95,
        "level": 39.44
      },
      {
        "name": "ofdm-mer-sd",
        "impaired": false,
        "startFrequency": 811,
        "stopFrequency": 904.95,
        "level": 0.61
      },
      {
        "name": "ofdm-amp-mean",
        "impaired": false,
        "startFrequency": 811,
        "stopFrequency": 904.95,
        "level": -0.13
      },
      {
        "name": "ofdm-amp-rms",
        "impaired": false,
        "startFrequency": 811,
        "stopFrequency": 904.95,
        "level": 0.72
      },
      {
        "name": "ofdm-amp-slope",
        "impaired": false,
        "startFrequency": 811,
        "stopFrequency": 904.95,
        "level": 0.004
      },
      {
        "name": "ofdm-amp-pk-pk",
        "impaired": false,
        "startFrequency": 811,
        "stopFrequency": 904.95,
        "level": 3.42
      },
      {
        "name": "ofdm-gd-mean",
        "impaired": false,
        "startFrequency": 811,
        "stopFrequency": 904.95,
        "level": 1851
      },
      {
        "name": "ofdm-gd-rms",
        "impaired": false,
        "startFrequency": 811,
        "stopFrequency": 904.95,
        "level": 8.59
      },
      {
        "name": "ofdm-gd-slope",
        "impaired": false,
        "startFrequency": 811,
        "stopFrequency": 904.95,
        "level": 0.026
      },
      {
        "name": "ofdm-gd-pk-pk",
        "impaired": false,
        "startFrequency": 811,
        "stopFrequency": 904.95,
        "level": 58.58
      },
      {
        "name": "ofdm-plc-cwer",
        "impaired": false,
        "startFrequency": 811,
        "stopFrequency": 904.95,
        "level": 0
      },
      {
        "name": "ofdm-ncp-fail",
        "impaired": false,
        "startFrequency": 811,
        "stopFrequency": 904.95,
        "level": 0
      }
    ],
    "ofdmData": {
      "numChannels": 1,
      "numProfiles": 4
    }
  }
]

Количество mac с уровнем docsis = x number

Ответы [ 3 ]

0 голосов
/ 06 мая 2019

Я загрузил ваш файл json в "http://www.json -generator.com / api / json / get / cggsimUEBK? Indent = 2 ", и приведенный ниже код должен подсчитать количество.Просто запустите это в вашей консоли разработчика.

function findCount(){  
  var result = json.responseJSON;
  var count=0;
  result.forEach(function(item){
   var impairments = item.impairments;
     impairments.forEach(function(impairment){
        if((impairment['name'] == "docsis-level")){ count++;}
     });
   });
  console.log(count);
  alert(count);  
}
var json = $.getJSON("http://www.json-generator.com/api/json/get/cggsimUEBK?indent=2",findCount);
0 голосов
/ 06 мая 2019

Самый простой способ подсчитать в jq - это использовать функцию для этой цели:

def count(stream): reduce stream as $i (0; .+1);

Это определение также поддерживает решения, эффективные как во времени, так и в пространстве.

Так как JSON в вопросе плохо сформирован, я предложу два решения - одно на основе объектов с «поврежденным» ключом:

count(.. | objects | select( has("impaired") and .name == "docsis-level"))

и другие, основанные на массивах "ухудшений":

count(.. | .impairments? // empty | .[] | select( .name? == "docsis-level"))

Эти два запроса иллюстрируют разные стили достижения различной степени устойчивости, но оба они не зависят от того, где соответствующие объекты находятся на входе.

Добавление

Теперь, когда пример данных был пересмотрен, может быть предложено следующее решение, которое зависит от регулярной структуры:

count(.[] | .impairments[] | select( .name == "docsis-level"))
0 голосов
/ 06 мая 2019

позвольте мне предложить вам решение, основанное на Unix-инструменте Walk-Path для JSON: jtc - там вы «кодируете» логику запроса прямо в путь.

1. ваш JSON немного искажен (вы можете использовать jtc -d, чтобы увидеть местоположение проблемы в опубликованном JSON)

2. после исправления JSON этот cli будет считать все MAC, где impairments содержит запись "name": "docsis-level":

bash $ <file.json jtc -w'<mac>l:[-1] [impairments][name]:<docsis-level>' -r | wc -l
       8
bash $ 

Объяснение дорожки (-w):

  • <mac>l:[-1] - найти каждую запись с меткой mac и шагом 1 уровня (в JSON) от найденной записи
  • [impairments][name]:<docsis-level> - адресная запись impairments и найти там запись "name": "docsis-level"
  • если все вышеперечисленные шаги пройдены успешно - выведите найденную запись

wc -l будет считать собранные (успешные) прогулки

PS> Раскрытие информации: я создатель инструмента jtc

...