python初心者で申し訳ございません。
以下のpythonスクリプトを実行。APIで情報を取得している。
出力結果の"name"が"hoge2_hoge2"をIDのみを取得したい。(フィルタ?)
お力沿いお願いいたします。
【コード】
import os import requests #POSTリクエストを送信する import json os.environ['HTTP_PROXY'] os.environ['HTTPS_PROXY'] url = 'API URL' api = 'API キー' headers = {'X-API-KEY' : api} def main(): response = requests.get(url, headers=headers) print(response.json()) x = json.loads(response.json()) for m in x["monitors"]: if m["name"]=="hoge2_hoge2": print(m["id"]) if __name__== '__main__': main()
【出力結果】
{'monitors': [{'duration': 3, 'maxCheckAttempts': 1, 'critical': 55555, 'isMute': False, 'metric': 'custom.ping-A01.2_2_3_1', 'excludeScopes': [], 'name': 'hoge2_hoge2', 'warning': 5, 'id': '3Tn9vU7tGFS', 'scopes': [], 'type': 'host', 'operator': '>'}, {'duration': 3, 'maxCheckAttempts': 2, 'critical': 1500, 'isMute': False, 'metric': 'custom.ping-H15.2_2_9_150', 'excludeScopes': [], 'name': 'custom.ping-H15.2_2_9_150', 'warning': 200, 'id': '3QXEZcrXFMb', 'scopes': [], 'type': 'host', 'operator': '>'}, {'duration': 3, 'maxCheckAttempts': 2, 'critical': 1500, 'isMute': False, 'metric': 'custom.ping-H16.2_2_9_151', 'excludeScopes': [], 'name': 'custom.ping-H16.2_2_9_151', 'warning': 200, 'id': '3QXJNu7GjKs', 'scopes': [], 'type': 'host', 'operator': '>'}, {'critical': 1900, 'isMute': False, 'excludeScopes': [], 'memo': '回線品目:フレッツ光ネクスト\u3000マンション・ハイスピードタイプ\n回線ID:L5435-46841-7781', 'type': 'host', 'operator': '>', 'notificationInterval': 10, 'duration': 3, 'maxCheckAttempts': 2, 'metric': 'custom.ping-A01.2_2_3_1', 'name': '帯広支店ルータ死活監視', 'warning': 200, 'id': '3RWjpKzPrkE', 'scopes': []}, {'isMute': False, 'excludeScopes': [], 'name': 'connectivity', 'id': '3QPXmoYtNm9', 'scopes': [], 'type': 'connectivity'}]} Traceback (most recent call last): File "c:/Users/Pythonファイル/Get-API.py", line 31, in <module> main() File "c:/Users/Pythonファイル/Get-API.py", line 17, in main x = json.loads(response.json()) File "C:\Program Files (x86)\Python38-32\lib\json\__init__.py", line 341, in loads raise TypeError(f'the JSON object must be str, bytes or bytearray, ' TypeError: the JSON object must be str, bytes or bytearray, not dict ```
回答1件
あなたの回答
tips
プレビュー