Python 如何解析-“非类型”对象不可下标
我正在从API获取一些数据,并将响应JSON的内容保存到列表中。 然而,我得到的“非类型”对象是不可下标的错误。我知道我正在索引一个无对象。我如何解决它?我对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
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时无法获取任何内容。换句话说,没有一个[“…”]是无效的。若要修复它,请使用或并使用默认值。