无法使用 Python3 模块请求 POST 到 Grafana

2023-12-29

我正在尝试使用 Grafana 的后端 API 创建一个仪表板。我首先测试我的 API 令牌是否是使用 GET 设置的,并成功获得返回码 200(如下所示)。然后,我尝试使用 POST 创建一个简单的仪表板,但我不断收到返回码 400。我很确定它与我尝试发送的有效负载有关,但我一直无法弄清楚。以下是我用于 JSON 格式的示例页面的链接。http://docs.grafana.org/reference/http_api/ http://docs.grafana.org/reference/http_api/

import requests


headers = {"Accept": "application/json","Content-Type": "application/json" ,"Authorization": "Bearer xxx"}

r = requests.get("http://www.localhost",headers=headers)
print(r.text)
print(r.status_code)



dashboard = {"id": None,
             "title": "API_dashboard_test",
             "tags": "[CL-5]",
             "timezone": "browser",
             "rows":"[{}]",
             "schemaVersion": 6,
             "version": 0
             }
payload = {"dashboard": "%s" % dashboard}
url = "http://www.localhost/api/dashboards/db"

p = requests.post(url,headers=headers, data=payload)
print(p)
print(p.status_code)
print(p.text)

OUTPUT:

200
<Response [400]>
400
[{"classification":"DeserializationError","message":"invalid character 'd' looking for beginning of value"},{"fieldNames":["Dashboard"],"classification":"RequiredError","message":"Required"}]

问题是您的对象不是实际的 json 对象。

您可以使用带有 json=YOUR_PYTHON_OBJECT 的 post 方法

因此,要修复代码,请将字典更改为仅使用常规 python 字典,使用 json=payload,而不是 data=payload。

因此重构你的代码,你将拥有:

import requests
headers = {"Accept": "application/json",
           "Content-Type": "application/json",
           "Authorization": "Bearer xxx"
           }

r = requests.get("http://www.localhost", headers=headers)
print(r.text)
print(r.status_code)

dashboard = {"id": None,
             "title": "API_dashboard_test",
             "tags": ["CL-5"],
             "timezone": "browser",
             "rows": [{}],
             "schemaVersion": 6,
             "version": 0
             }
payload = {"dashboard": dashboard}
url = "http://www.localhost/api/dashboards/db"

p = requests.post(url, headers=headers, json=payload)
print(p)
print(p.status_code)
print(p.text)

请注意仪表板中的差异,例如,“rows”从“[{}]”更改为 [{}],因此它是一个 python 对象(带有空字典的列表),而不是字符串。

输出是

200
<Response [200]>
200
{"slug":"api_dashboard_test","status":"success","version":0}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法使用 Python3 模块请求 POST 到 Grafana 的相关文章

  • 请求:cert 和 verify 之间有什么区别?

    证书和验证有什么区别 来自文档 verify 可选 如果为 True 则将验证 SSL 证书 还可以提供 CA BUNDLE 路径 cert 可选 如果是字符串 则为 ssl 客户端证书文件 pem 的路径 如果是元组 则为 cert ke
  • 无法通过模块查看或修改 PYTHONHASHSEED 的值

    试图看到的价值PYTHONHASHSEED https docs python org 3 4 using cmdline html highlight pythonhashseed envvar PYTHONHASHSEED通过使用 th
  • 使用 Python 进行 requests.get() 后 PDF 文件损坏

    我正在尝试使用 requests get 下载 PDF 文件 它适用于我发现的大多数测试 PDF 文件 但对于本例则不起作用 并且文件已损坏 如果我用浏览器打开 URL 并保存文件 它就可以正常工作 我尝试使用 Stream 分块下载它 但
  • 无法使用 python-requests 发布文件+数据

    我可以使用curl 发布文件 curl X POST i F name barca F country spain F file home messi Desktop barca png http localhost 8080 new or
  • TimeStream + Grafana:无法识别数据中的序列

    在 AWS Timestream 上跳跃 我在 grafana 集成方面遇到了一些问题 我构建了一个查询 返回按天和 事物 分组的事件计数 并希望在图表中显示该结果 甚至哪一个都不重要 In a table the data is disp
  • 如何链接到grafana表中的外部站点

    如何创建包含外部站点超链接的单元格列 我可以嵌入文本并通过数据源传递它 不幸的是 grafana 不会将纯文本转换为超链接 例如 我可以使用以下文本创建一个单元格 https www google com search q hot dogs
  • 如何在 Kivy 中设置小部件/布局的最小允许宽度/高度?

    我有包含 3 个元素的 BoxLayout 我需要第一个和最后一个元素占据最小的可用空间 中间元素具有固定比例 1 1 因此当我调整窗口大小时 侧面元素变得太小并且内容会超出其中 我需要例如标签 或按钮 甚至不同元素的集合 文本始终insi
  • 如何从 python 的输出中删除大括号?

    我是 Python 新手 我最近 1 周前开始学习 但我被困在这里 任何帮助将不胜感激 from tkinter import import tkinter as tk import psycopg2 root Tk def get inf
  • Requests/aiohttp:关闭响应对象

    我对是否需要感到有点困惑 close 两者中的响应对象requests and aiohttp 请注意 这是一个单独的实例方法 而不是session close 我说的是响应对象本身 Does Response requests or Cl
  • 如何从 python 发布到 hipchat

    我有一些 python 工具 我想将它们的更新发送到 hipchat 房间 我在其他地方使用 shell 脚本执行此操作 因此我知道它在我们的环境中有效 但我似乎无法将令牌推送到 hipchat API 一定是简单的事情 首先 这会正确进行
  • Python requests_toolbelt MultipartEncoder 文件名

    使用 requests toolbelt 以多部分形式上传大文件 我构建了一个方法 可以成功上传文件 但是我无法访问发布的文件名 如何访问服务器上的文件名 client side file open Volumes Extra test m
  • 在 python 查询参数中使用 %20 而不是 + 作为空格

    我使用 python requests 编写了以下 python 脚本 http requests readthedocs org en latest http requests readthedocs org en latest impo
  • 更新\插入数据从grafana到mysql

    可以从grafana更新数据或插入数据到mysql 我需要使用 UI 在 mysql 中插入 更新信息 现在我已经在使用grafana 所以想知道是否有任何方法可以使用grafana来更新或插入信息 没有用于获取用户输入并将该数据插入 My
  • Python:SSLError、握手错误、意外的 EOF

    我在使用 Python 请求连接到特定站点时遇到问题并收到此错误 HTTPSConnectionPool host XXXXXXXXX port 443 url 超出最大重试次数 由 SSLError SSLError bad handsh
  • Grafana:警报查询不支持模板变量

    您好 我想在 grafana 中创建一个简单的警报 以检查过去 5 分钟是否没有数据 但我收到一个错误 警报查询不支持模板变量 嗯 根据这个issue https github com grafana grafana issues 6230
  • 如果 csv 存储为变量,如何使用 pandas read_csv() 方法?

    我正在尝试处理谷歌电子表格中的数据 将其读入 csv 然后使用 pandas read csv 将其作为数据框处理 我可以将 csv 读入变量 下面的变量 data 但不能在变量上使用 pandas read csv 我尝试使用 os cw
  • Grafana中从InfluxDB中获取总共两个系列的数据

    我现在很困惑 我在 Influx 和 Grafana 的深处花了一三天时间 绘制了一些对我的需求至关重要的图表 但是 对于最后一个指标 我需要合计两个指标 列值中的两个增量计数 我们将它们称为 notification one 和 noti
  • 尝试在 Python 中下载 jpeg 时出现 urllib.request.urlretrieve 错误

    我正在尝试使用下载 jpg 文件urllib request urlretrieve url 文件名 在 Python 3 5 2 中 网址是http dm victoriassecret com product 404x539 V6039
  • 获取 NLTK 索引的所有结果

    我正在使用 NLTK 来查找单词的一致性 但我不知道如何获取所有结果并将它们放入list or set 例如 text concordance word 仅打印前 25 个结果 TL DR text concordance lines 10
  • 如何使用 re2 正则表达式否定字符串模式?

    我正在使用谷歌re2 https github com google re2 wiki Syntax用于查询目的的正则表达式普罗米修斯 https prometheus io docs prometheus latest querying

随机推荐

  • 拥有许多小型 Azure 存储 Blob 容器(每个容器都包含一些 Blob)更好,还是拥有一个包含大量 Blob 的大型容器更好?

    所以场景如下 我有一个 Web 服务的多个实例 用于将 blob 数据写入 Azure 存储 我需要能够根据收到的时间将 blob 分组到容器 或虚拟目录 中 偶尔 最坏的情况是每天 旧的 blob 会被处理然后删除 我有两个选择 Opti
  • 带延迟的打字稿循环

    我正在尝试用 Typescript 创建一个节拍器 我有这个 JavaScript 代码 function theLoop i setTimeout function metronome play if i theLoop i 3000 i
  • 是否可以使用 MSTest 从 c++ dll 测试“内部”类?

    我们目前正在尝试向我们的 C 应用程序添加单元测试 该应用程序由 30 个项目组成 生成 29 个 dll 和 1 个 exe 我们使用 MSTest 来运行我们的单元测试 因为它已经包含在 Visual Studio 2010 中 它对于
  • 巩固党规

    一个简单的例子 gt library partykit gt partykit list rules party ctree Petal Length data iris 2 Petal Width lt 0 6
  • 关于创建表作为选择 (CTAS)

    当我们这样做时 create table big2 as select from big1 索引和约束是否也复制到新表中 仅复制 NOT NULL 约束 看FAQ http www orafaq com wiki CTAS 你可以做CREA
  • SQL 中的离散导数

    我的表格中有传感器数据 格式如下 Time Value 10 100 20 200 36 330 46 440 我想提取每个时间段的值变化 理想情况下 我想得到 Starttime Endtime Change 10 20 100 20 3
  • Django 自定义用户字段与 AbstractBaseUser 冲突

    我正在从现有数据库构建 Django 项目 该数据库正在被其他系统使用 因此我无法更改其架构 这是我当前的自定义用户模型 class Users AbstractBaseUser id user models IntegerField pr
  • 添加到 iPhone 主屏幕时,Web 应用程序感觉响应速度较慢

    当添加到 iPhone 上的主屏幕时 这个 Angular 2 应用程序的响应速度比在 Safari 中运行时的响应速度要慢 我通过将其添加到 index html 使其具有 Web 应用程序功能 如果你有几分钟时间 在 Github 页面
  • 在 Xcode 中,视图或窗口如何知道自身外部的 mouseDown?

    我想设计一个有点像弹出窗口的面板 当鼠标在它外面按下时 它可能会关闭或隐藏自己 但我不知道如何实现这一目标 我所知道的是一个视图可以处理 mouseDown mouseUp等等 但是当鼠标在其他地方按下时呢 我不知道如何捕捉这个事件 进一步
  • 如何使用 16GB 内存创建 Windows 虚拟机

    我对云服务完全陌生 使用 Windows Azure 我需要一个 Web 服务器和一个数据库服务器 每个服务器都有 16GB RAM 然而 超大的 Windows 虚拟机只有 14GB RAM 我如何为每台服务器添加 2GB RAM 或者我
  • rabbitmq 抛出 AmqpException: 找不到类 [B

    当我向 RabbitMQ 发送消息时 它会抛出 AmqpException for 循环 org springframework amqp rabbit listener exception ListenerExecutionFailedE
  • 通过 Git 将 Master 上未提交的更改放入新分支

    当我在分支时 如何将未提交的更改放入分支测试master 您还可以创建一个新分支并通过执行以下操作切换到它 git checkout b new branch git add 我一直使用这个 因为我总是忘记在开始编辑代码之前启动一个新分支
  • Alphavantage 和纳斯达克指数停止运行

    这个针对纳斯达克综合指数的 API 调用曾经有效 现在它只返回一个空的 JSON 没有错误消息 https www alphavantage co query function TIME SERIES MONTHLY symbol IXIC
  • webkit translateX 动画正在回滚到初始位置

    我正在尝试为移动 webkit 制作一个图片库 实际上足够快的唯一方法是使用硬件加速的translateX 我的问题是 div 在动画结束时收回其初始位置 我在左侧按钮上添加了 SlideGalLeft 类 到动画 div 您可以在此处的回
  • D3.js 使用嵌套数组从 tsv 迁移到 json

    我正在通过遵循教程并尝试阅读可用的示例来学习 d3 js 感谢迈克 在这个例子中 http bl ocks org mbostock 3884955 http bl ocks org mbostock 3884955 我无法理解如何从 ts
  • RxJava2 发布

    有什么区别 ObservableTransformer Observable merge it ofType x compose transformerherex it ofType y compose transformerherey a
  • FreeMarker 模板错误!在struts2中

    我在类中使用基于 Sturts 2 注释的验证 同时显示操作错误 我收到了这个奇怪的 FreeMarker 模板错误 这是我的实体类 Entity public class User implements Serializable priv
  • 如何使用 QEMU 模拟 vmx 功能?

    我读自here https www kernel org doc Documentation virtual kvm nested vmx txt必须通过向命令提供 vmx 选项来显式启用 QEMU 上的 vmx 功能支持 但问题是它似乎不
  • 使用 AllPermission 启用 Java SecurityManager

    我正在努力让自己熟悉SecurityManager但即使是这个简单的场景也失败了 当我从 IDE 内部或命令行运行以下命令时 我得到以下信息例外 https docs oracle com cd E19226 01 820 7699 abg
  • 无法使用 Python3 模块请求 POST 到 Grafana

    我正在尝试使用 Grafana 的后端 API 创建一个仪表板 我首先测试我的 API 令牌是否是使用 GET 设置的 并成功获得返回码 200 如下所示 然后 我尝试使用 POST 创建一个简单的仪表板 但我不断收到返回码 400 我很确