после выполнения вызова API, я хочу извлечь конкретный ключ / значение и затем сохранить его в текстовом файле.
Что было сделано до сих пор: - (1) Оставить вызов API и вернуть список
import requests
import json
#API details
url = "http://192.168.1.100:9792/api/scan"
body = json.dumps({"service":"scan", "user_id":"1", "action":"read_all", "code":"0"})
headers = {'Content-Type': 'application/json'}
#Making http post request
response = requests.post(url, headers=headers, data=body, verify=False)
#Decode response.json() method to a python dictionary for data process utilization
dictData = response.json()
#Json string
json_str = json.dumps(dictData)
print(json_str)
вывод на печать (json_str), как показано ниже
{
"node": [
{
"id": "123",
"ip": "10.101.10.1",
"model": "md1",
"type": "basic",
"name": "aaa"
},
{
"id": "456",
"ip": "10.101.10.2",
"model": "sp3",
"type": "extra",
"name": "bbb"
},
{
"id": "789",
"ip": "1.1.1.1",
"model": "md1",
"type": "basic",
"name": "ccc"
},
{
"id": "101",
"ip": "2.2.2.2",
"model": "advance",
"type": "sw1",
"name": "ddd"
}
],
"status": "success"
}
(2) Извлечение определенного ключа / значения, здесь я получаю сообщение об ошибке, чтобы получить ключ / значение из списка
for i in json_str["node"]:
if i["type"]=="basic" or i["type"]=="sw1" :
print(i["name"],i["ip"], i["type"])
Я получаю сообщение об ошибке
for i in json_str["node"]:
TypeError: string indices must be integers, not str
Я попытался изменить json_str [0], но он по-прежнему не возвращает ключ / значение, которое я хочу. Пожалуйста, помогите дальше. спасибо
Просто используйте назад dictData, как это уже в словаре
for i in dictData["node"]