将dicts数组转换为JSON文件,使用flot进行图形转换

时间:2015-05-06 00:00:08

标签: python json formatting flot

我正在读取4个传感器的读数。我得到一个像这样的数组:

[{"value":0.162512,"number":0,"channel":0},
 {"value":0.027835,"number":1,"channel":1},
 {"value":0.08361,"number":2,"channel":2},
 {"value":0.295788,"number":3,"channel":3},
 {"value":0.137746,"number":4,"channel":0},
 {"value":0.009403,"number":5,"channel":1},
 {"value":0.089616,"number":6,"channel":2},
 {"value":0.310242,"number":7,"channel":3},
 {"value":0.109047,"number":8,"channel":0},
 ...
 {"value":0.085652,"number":28,"channel":0},
 {"value":0.01359,"number":29,"channel":1},
 {"value":0.105441,"number":30,"channel":2},
 {"value":0.32407,"number":31,"channel":3}]

我需要格式化并将其转换为JSON对象,我想通过这里阅读。然后我将使用flot绘制图形。这就是目标。

我想要一个折线图,显示四个传感器的每个读数。我最终将在Python中使用它,如果这有助于我的方向。

我不知道我在做什么,所以任何方向都会受到赞赏。

1 个答案:

答案 0 :(得分:1)

没有线索不是一个好的起点......请参阅flot documentationexamples开始。

你有什么是一个对象数组。 (从它的外观来看已经是JSON。如果仍然在python端,将它作为一个字符串放在你的javascript中并在其上调用JSON.parse(),它已经是有效的JSON。)

您需要的是数组(数据点)的数组(数据集)数组。像

这样的东西
[
    [ // dataseries for channel 0
        [0, 0.162515],
        [4, 0.137746],
        ...
    ],
    [ // dataseries for channel 1
        [1, 0.027835],
        [5, 0.009403],
        ...
    ],
    ...
]

要进行转换,您可以循环遍历原始数组,并将数据点放在正确的数据集中,如下所示:

var dataAsArrays = [
    [], [], [], [] // one empty array for each dataseries / channel
];
$.each(dataAsObjects, function (index, item) {
    dataAsArrays[item.channel].push([item.number, item.value]);
});

有关上述代码的工作示例,请参阅此fiddle