如何编写一个grafana简单的json到python中的json表查询

Posted

技术标签:

【中文标题】如何编写一个grafana简单的json到python中的json表查询【英文标题】:how to write a grafana simple json to table query from a json in python 【发布时间】:2019-05-07 14:42:28 【问题描述】:

如何将该数据(json)转换为pandas Dataframe,以便它可以将“键”作为列填充,将“值”作为grafana简单json中的行填充到动态表格中。实际上,它不是一个完美的数组格式我如何操纵它作为数据框工作?帮助将不胜感激。

data = "name":"john","class":"fifth"
       "name":"emma","class":"sixth"

无论我们有多少 json,我都想动态地将键填充为列和行作为值。

【问题讨论】:

数据变量似乎不是有效的 json 或 python dict。你是说data = [ "name": "john", "class": "fifth", "name": "emma","class":"sixth"] @sarbot 第一个 JSON 对象后没有逗号。如何将这些多个 json 合并为一个 json 并从中生成一个数据框作为键作为列,将值作为行? 我认为应该有.. 我不是 json 专家,但它不是有效的 python(我认为也没有有效的 json)。你从哪里得到的 json 数据?是否要加载许多 json 对象或文件?比我会在我的答案中添加一个代码示例 【参考方案1】:

您可以使用pandas.DataFrame.from_dict(data) 方法。 Docs

一个例子可能如下所示:

import pandas as pd
data = ["name":"john","class":"fifth",
       "name":"emma","class":"sixth"]
df = pd.DataFrame.from_dict(data)

结果:

   class  name
0  fifth  john
1  sixth  emma

在这种情况下,数据已经是一个字典列表(我假设这就是您在问题中的意思)。如果您在 JSON-Strings/Files 中有数据,您可以使用来自 json module 的 json.loads(data_string) / json.load(data_file)

更新

对于像这样的grafana表数据结构:

data = [
  
    "columns":[
      "text":"Time","type":"time",
      "text":"Country","type":"string",
      "text":"Number","type":"number"
    ],
    "rows":[
      [1234567,"SE",123],
      [1234567,"DE",231],
      [1234567,"US",321]
    ],
    "type":"table"
  
]

可以创建熊猫数据框:

keys = [d['text'] for d in data[0]['columns']]
pd.DataFrame(data=data[0]['rows'], columns=keys)

对于这样的结果:

   Time     Country  Number
0  1234567  "SE"     123
1  1234567  "DE"     231
2  1234567  "US"     312

【讨论】:

在您的代码中,json 是 ina 结构,但在我的情况下,我有多个 json 对象。每个 json 对象后我没有逗号 我从来没有用过grafana,你是把数据读成字符串还是从文件中读取。对象是否由换行符分隔?比你可以简单地使用 data.split('\n')readlines() 文件... grafana 格式应该是这样的 grafana.com/plugins/grafana-simple-json-datasource 在该链接中检查 json 到表格格式 好的,所以你的数据比你的问题中给出的要多得多。我想我现在得到了你的“问题”;) 再次更新了答案,如果这不是您想要的,您需要给我一个完整的输入数据示例和您要创建的最终数据框(表)。

以上是关于如何编写一个grafana简单的json到python中的json表查询的主要内容,如果未能解决你的问题,请参考以下文章

单一统计面板的 Grafana 简单 JSON 响应

以编程方式导出 grafana 仪表板数据

如何在 grafana 中使用状态面板?或建议最佳可视化收费

如何在 Grafana 镜像中添加仪表板配置 json 文件?

如何手动导入 grafana 仪表板 json 文件

grafana-simple-json-datasource 用于连接各种grafana不支持的数据源