Python 如何解析-“非类型”对象不可下标

Python 如何解析-“非类型”对象不可下标,python,Python,我正在从API获取一些数据,并将响应JSON的内容保存到列表中。 然而,我得到的“非类型”对象是不可下标的错误。我知道我正在索引一个无对象。我如何解决它?我对Python还很陌生 for i in range(0,len(content)): try: response = requests.post(url, data=json.dumps({ "GetSignificantDevelopments_Request_1": { &q

我正在从API获取一些数据,并将响应JSON的内容保存到列表中。 然而,我得到的“非类型”对象是不可下标的错误。我知道我正在索引一个无对象。我如何解决它?我对Python还很陌生

for i in range(0,len(content)):
    try:
        response = requests.post(url, data=json.dumps({
   "GetSignificantDevelopments_Request_1": {
      "FindRequest": {
         "CompanyIdentifiers_typehint": [
            "CompanyIdentifiers"
         ],
         "CompanyIdentifiers": [
            {
               "RIC": {
                  #"Value": content[i]
                  "Value": "8341.T"
               }
            }
         ],
         "StartDate": "2020-08-01T00:00:00",
         "EndDate": "2020-09-21T00:00:00",
         "Significance": "1 2 3",
         "MaxNumberOfItems": 2000
      }
   }
}), headers=headers)
        data=json.loads(response.text.encode('utf8'))
        for item in data['GetSignificantDevelopments_Response_1']['FindResponse']['Development']:
            list_RepNo=[]
            list_DevelopmenId=[]
            list_RepNo.append(item['Xrefs']['RepNo'])
            list_DevelopmenId.append(item['Xrefs']['DevelopmentId'])
    except Exception as Error:
    print(Error)
    raise
    continue
我得到的错误如下:

'NoneType' object is not subscriptable

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-24-c73ee1d65472> in <module>
     36 }), headers=headers)
     37         data=json.loads(response.text.encode('utf8'))
---> 38         for item in data['GetSignificantDevelopments_Response_1']['FindResponse']['Development']:
     39             list_RepNo=[]
     40             list_DevelopmenId=[]

TypeError: 'NoneType' object is not subscriptable

如何解决此问题?

当正在索引的数组不属于任何类型时,会发生这种情况

在你的情况下,如果你

在[1]中:类型数据 你会得到

出[1]: 解决方案:


您必须确保正在编制索引的案例中的arraydata不是None类型。

当您为None类型编制索引,并尝试为其编制索引时,就会出现此问题。

好的,您理解这一点很好。但现在还不清楚你想要谁来解决这个问题。数据根本没有该字段,这就是值为none的原因。唯一的逻辑解决方案是,在不深入代码细节的情况下,使用检查来包装下标访问,例如:如果数据['GetSignificantDevelopments\u Response\u 1']不是none,而数据['GetSignificantDevelopments\u Response\u 1']['FindResponse']不是无:-检查的顺序至关重要,因为您首先要检查第一次访问,以确保其安全,其次是第二次访问。检查!可能会帮助你理解你所面临的问题!。此链中的一个键数据['GetSignificantDevelopments\u Response\u 1']['FindResponse']['Development']不存在,因此在尝试访问它时,不会得到任何键。None不是dict或list类型,因此下标为None时无法获取任何内容。换句话说,没有一个[“…”]是无效的。若要修复它,请使用或并使用默认值。