python - 使用 Python 将字符串插入 JSON
问题描述
我首先要说我大约 2 周前开始学习 Python,而且我不是专业的程序员。所以,我有一个 Pi 3 并且正在玩一些家庭自动化的东西。具体来说,我试图让 Pi 使用他们记录不充分的 API 来控制我的 Hive 设备。
我正在使用 Flask 并有登录路径、将访问令牌存储在会话变量中、检查变量是否存在等。
我能找到检查登录状态的唯一方法是发送一个简单的请求,看看它是否返回错误。如果我将令牌硬编码到 JSON 中,这将起作用。
这就是我所拥有的:
url = "https://api.prod.bgchprod.info:443/omnia/users"
hiveSessionId = session['hiveSessionId']
print hiveSessionId
headers = {
'Content-Type': "application/vnd.alertme.zoo-6.1+json",
'Accept': "application/vnd.alertme.zoo-6.1+json",
'X-Omnia-Client': "Hive Web Dashboard",
'X-Omnia-Access-Token': "{hiveSessionId}",
'Cache-Control': "no-cache",
}
print headers
response = requests.request("GET", url, headers=headers)
data=response.json()
print(response.text)
if 'errors' in data:
return "Not logged in"
return "Logged in"
就是这样说的:
'X-Omnia-Access-Token': "{hiveSessionId}",
我正在努力解决的问题。我尝试了各种不同的双引号、单引号、转义等许可——所有这些都可以在 stackexchange 上找到。
当我运行它时,我得到的是:
B4QpAIxAzIebkSKCQFCIjwQlALaLt
{'X-Omnia-Client': 'Hive Web Dashboard', 'Accept': 'application/vnd.alertme.zoo-6.1+json', 'X-Omnia-Access-Token': '{hiveSessionId}', 'Cache-Control': 'no-cache', 'Content-Type': 'application/vnd.alertme.zoo-6.1+json'}
{"errors":[{"code":"NOT_AUTHORIZED"}]}
所以会话ID在那里。我认为这只是将字符串插入 JSON 标头的语法,我弄错了。
任何帮助将不胜感激。
干杯安迪
解决方案
典型的!
我在这里发帖 10 秒后,在搞砸了大约 3 个小时后,我找到了答案。专家会知道,但这是我为其他人所做的:
'X-Omnia-Access-Token': hiveSessionId,
就那么简单。
干杯安迪
推荐阅读
- reactjs - JSX/TSX 标记是通过值还是通过引用发送的常量?
- ios - 如何解决Objective C中成功回调的预期')'错误
- javascript - 正则表达式以获取以特定单词结尾的路径
- security - 使用 ReactNativeWeb 保护私钥
- ios - 在 UITableView 中更改顺序时的事件
- python - 使用列名将列聚合到行
- javascript - TypeScript 类型推断 - 函数的通用对象
- c++ - 检查两个索引之间的回文
- curl - 如何使用`curl`在`--data-binary`的文本中间插入文件的内容?
- mysql - 尝试在实例的索引中运行随机数,但我得到索引超出范围错误