Highcharts:从存储在文本文件中的字典中阅读数据

o3imoua4  于 2022-11-10  发布在  Highcharts
关注(0)|答案(1)|浏览(154)

我试图弄清楚如何从python脚本输出中获取传感器数据到Highcharts中。我决定将python传感器数据作为字典保存在一个文本文件中,而不是直接用javascript编写所有代码。我的data.txt文件如下所示:

{'outdoor_temp': 45.7, 'outdoor_humid': 91.8}

我的Highcharts代码的相关部分如下所示:

load: function () {
    var series = this.series[0];
    setInterval(function () {
      var x = (new Date()).getTime(), 
      file=fopen(data.txt,0)
      y = (file["outdoor_temp"]);
      series.addPoint([x, y], true, true);
    }, 2000);

为什么它不读取存储在data.txt中的字典值?

hrysbysz

hrysbysz1#

如果你想把数据存储在文件中,我建议你使用JSON。Python和JavaScript都支持JSON,并且非常容易使用。

使用Python编写文件

import json

data = {'outdoor_temp': 45.7, 'outdoor_humid': 91.8}

with open("data.json", "w") as f:
    json.dump(data, f)

创建的data.json文件如下所示:

{"outdoor_temp": 45.7, "outdoor_humid": 91.8}

使用节点和JavaScript读取文件

然后,您可以使用以下Node程序读取创建的文件:

import { readFile } from "fs/promises";

// await can only be used in an async function 
(async () => {
  const file = await readFile("data.json", { encoding: "utf-8"});
  const parsed = JSON.parse(file);
  // log all data
  console.log(parsed);
  // log outdoor temperature
  console.log(parsed.outdoor_temp)
})()

请注意:您将需要自己为上述程序实现一些错误处理。

备注

如果您想存储数据并可能进行一些计算,请进行更多的可视化等。我建议您使用数据库,如MongoDBtimeseries database(如InfluxDB),而不是单个文件。如果您正在为数据寻找一些不错的可视化工具,Grafana也有集成。

相关问题