【发布时间】:2017-05-29 15:02:32
【问题描述】:
我有大约 100 台机器运行 Mersive Solstice,这是一种无线显示工具。我正在尝试收集一些重要信息,尤其是每个已安装实例的许可证的实现 ID。
使用找到here 的 Solstice OpenControl API,我编写了一个 python 脚本来使用 json GET 获取我需要的一切。但是,即使使用文档中的示例 GET,
import requests
import json
url = ‘http://ip-of-machine/api/stats’
r = requests.get(url)
jsonStats = json.loads(r.text)
usersConnected = jsonStats.m_statistics.m_connectedUsers
我遇到:
Traceback (most recent call last):
File "C:/Python27/test.py", line 7, in <module>
usersConnected = jsonStats.m_statistics.m_connectedUsers
AttributeError: 'dict' object has no attribute 'm_statistics'
这非常令人困惑。我在 SO 上发现了很多关于这个问题的类似问题,但没有一个专门针对 API 参考指南中的错误 GET 请求。
另外,这是我的脚本:
import requests
import json
from time import sleep
url = 'test'
f = open("ip.txt", "r")
while(url != ""):
url = f.readline()
url = url.rstrip('\n')
print(url)
try:
r = requests.get(url)
except:
sleep(5)
jsonConfig = json.loads(r.text)
displayName = jsonConfig.m_displayInformation.m_displayName
hostName = jsonConfig.m_displayInformation.m_hostName
ipv4 = jsonConfig.m_displayInformation.m_ipv4
fulfillmentId = jsonConfig.m_licenseCuration.fulfillmentId
r.close()
f.close
为了便于保存,我从文本文档中导入 URL。我能够与 /api/config JSON 建立连接,当 URL 放入浏览器时,它会吐出 JSON 记录:
【问题讨论】: