当只有一个“节点”时,将json中的json解析为dict

时间:2019-11-30 18:49:50

标签: python json python-requests python-responses

当我要查找的多个“节点”时,我能够解析json ressponse,但是当API仅返回一个节点时,我会收到消息“字符串索引必须为整数”。 这是我的代码,使用json.loads()从字符串将其转换后,将其传递给字典:

import requests, requests.auth
import json
import os

def parseSchedule(dict):
    i = 0
    for item in dict['reservations']['reservation']:
        print(item['event_start_dt'])
        i += 1

我已经简化了json响应,以表明这可行:

    {
    "reservations": {
        "reservation": [{
            "event_start_dt": "2019-11-27T12:40:00-08:00"
        }, {
            "event_start_dt": "2019-11-27T16:10:00-08:00"
        }]
    }
}

这会引发错误“字符串索引必须为整数”:

    {
    "reservations": {
        "reservation": {
            "event_start_dt": "2019-11-26T08:30:00-08:00"   
        }
    }
}

我研究了.items(),其中尝试输入键和值,但到目前为止仍未成功。

1 个答案:

答案 0 :(得分:0)

您可以使用以下方法做到这一点:

#If it is a list:
if str(type(dict["reservations"]["reservation"])) == "<class 'list'>":
    for i in range(len(dict["reservations"]["reservation"])):
        print(dict["reservations"]["reservation"][i]["event_start_dt"])
else: #If it is not a list
    print(dict['reservations']['reservation']['event_start_dt'])