I am getting below sample data through get api call in json format. trying to parse the 'members' data form json but getting KeyError.
Sample data:
{
"data": {
"searchResult": [
{
"teamName": "abc comp",
"startDate": "20190901",
"status": "Open",
"category": "abc Service",
"domain": "abc comp",
"teamSFId": "a5nf00000000OPqAAM",
"asOfDate": "20190927",
"runDateTime": "20190927T210031+0000"
},
{
"teamName": "abc Reporting",
"startDate": "20181129",
"status": "Open",
"category": "abc Service",
"domain": "abc comp",
"teamSFId": "a5n0R0000002hqLQAQ",
"asOfDate": "20190919",
"runDateTime": "20190919T184824+0000"
},
{
"teamName": "abc 766",
"startDate": "20190702",
"status": "Open",
"category": "abc Service",
"domain": "abc comp",
"teamSFId": "a5n0R0000003InpQAE",
"asOfDate": "20190919",
"runDateTime": "20190919T184824+0000"
},
{
"teamName": "abc comp 1",
"closeDate": "20190127",
"startDate": "20190125",
"status": "Closed",
"category": "abc Service",
"domain": "abc comp",
"teamSFId": "a5n0R000000DNoAQAW",
"members": [
{
"memberName": "TM0000005872",
"memberSFId": "a5m0R000000DDIYQA4",
"active": false,
"contactName": "intcontact 1",
"coreTeamMember": "Yes",
"endDate": "20190127",
"personId": 0,
"hybridRoleFlag": false,
"launchMember": false,
"role": "abc Analyst",
"startDate": "20190125",
"teamLeader": "No"
}
],
"asOfDate": "20190919",
"runDateTime": "20190919T184824+0000"
},
{
"teamName": "abc comp D",
"startDate": "20191022",
"status": "Open",
"teamCode": "TC100004",
"teamSFId": "a5nf00000004U5gAAE",
"asOfDate": "20191104",
"runDateTime": "20191104T163644+0000"
},
{
"teamName": "abc comp 766",
"startDate": "20190703",
"status": "Open",
"category": "abc Service",
"domain": "abc comp",
"teamSFId": "a5n0R0000003JRpQAM",
"members": [
{
"memberName": "TM0000006456",
"memberSFId": "a5m0R0000000UYvQAM",
"active": true,
"contactName": "Leonel",
"coreTeamMember": "Yes",
"personId": 31429,
"hybridRoleFlag": false,
"launchMember": false,
"primaryTeamAssociation": "No",
"role": "TransporManager",
"startDate": "20190703",
"teamLeader": "No",
"samAccountName": "LeoM"
}
],
"asOfDate": "20190919",
"runDateTime": "20190919T184824+0000"
},
{
"teamName": "Test abc Service",
"startDate": "20191119",
"distributionList": "Angela Li",
"status": "Open",
"teamCode": "TC100014",
"teamDesc": "testing",
"teamSFId": "a5nf00000004UZvAAM",
"asOfDate": "20191119",
"runDateTime": "20191119T100022+0000"
},
{
"teamName": "MLB abc comp Team 1",
"startDate": "20181101",
"status": "Open",
"category": "abc Service",
"domain": "abc comp",
"teamSFId": "a5n0R0000004TC3QAM",
"asOfDate": "20190919",
"runDateTime": "20190919T184824+0000"
}
]
},
"status": "success",
"code": "0",
"errorMsg": null,
"httpResponseCode": 200
}
Code:
import requests
import json
targeturl = 'https://xyz.abc.com'
response = requests.get(targeturl, auth=('username', 'password'))
content = response.content.decode('utf-8')
json_data = json.loads(content)
team = json_data['data']['searchResult']
for team_data in team:
print(team_data) #Able to parse team data
member = team_data['members'] # -> getting error while parsing member data
quote Error: KeyError Traceback (most recent call last) in ----> 1 member = team_data['members']
KeyError: 'members'
quote
searchResults(which your code bound toteam_data) has thememberskey - try usingteam_data.get('members')instead to avoid theKeyError, but at the expense of havingNonebe bound tomembers.