我正在尝试编写一个脚本,该脚本将从我们的监视工具中提取当前状态并在MSSQL DB中更新它们。当我调用API时,得到了json格式的巨大响应。
{
"hoststatuslist": {
"recordcount": "1084",
"hoststatus": [
{
"@attributes": {
"id": "XXXX"
},
"host_id": "XXX",
"name": "XXXXX",
"display_name": "XXXXXXX",
"address": "XXXXXX",
"alias": "XXXXXX",
"status_text": "XXXXXXXXXXXXXXXXXXXXXXX",
etc.
},
{
"@attributes": {
"id": "XXXX"
},
"host_id": "XXX",
"name": "XXXXX",
"display_name": "XXXXXXX",
"address": "XXXXXX",
"alias": "XXXXXX",
"status_text": "XXXXXXXXXXXXXXXXXXXXXXX",
etc.
},
etc.
]
}
}
如您所见,我得到了1000多个具有属性的主机对象。我想解析响应以便添加/更新MSSQL。我正在尝试分析每个主机的主机id、名称和状态文本。
我试着做类似于Python - Parsing JSON Data Set的事情,但是我不断得到错误,响应对象没有读取或解码属性。
这是我当前的代码:
import requests
import json
response = requests.get('url with API Key')
decoded_response = response.read().decode("UTF-8")
data = json.loads(decoded_response)
jsonData = data["hoststatus"]
for host in jsonData:
Name = host.get("name")
StatusText = host.get("status_text")
如果有人建议用另一种语言或工具来做这件事,我是开放的。我需要调用大约20个api,并将所有状态/其他信息放入一个DB中,以便它们都位于一个位置。
如有任何帮助,我们将不胜感激。
正如@danil kondratiev所说,您可以使用response.json()而不需要编码/解码。这对你有用吗?
如果响应来自Flask应用程序,则需要使用
response.get_json()
。另外,确保你有一个更新版本的烧瓶。
试试看。Requests docs
相关问题 更多 >
编程相关推荐