无法在 python 中返回多个字典集

Unable to retun multiple dicitonary sets in python

我正在查询 REST API url 并且我正在尝试 return 所有字典集,但只能 return 一个密钥对。 当 returned 仅出现一组密钥对时,for 循环内 print 语句中的字典输出是预期的输出。 预期字典如下所示:

    {'IncidentID': 'IM10265'}
    {'IncidentID': 'IM10266'}
    {'IncidentID': 'IM10267'}
    {'IncidentID': 'IM10268'}

代码:

    import json , requests
sm1 = requests.get('http://Rest Url', auth=('XX','YY'))
z = json.loads(sm1.text)

def get_im_list():
    incidentlist_access = z['content']
    for im_data in incidentlist_access:
        Access_imslist = im_data['Incident']
        print(Access_imslist)
        #print(type(Access_imslist))
        #return Access_imslist

data = get_im_list()
#print(data)

所以当我取消评论时

return Access_imslist & print(data)

我只收到如下输出:

{'IncidentID': 'IM10265'}

不是完整的词典。

每次循环遍历数据时,Access_imslist 都会被覆盖,因此当您(大概)return Access_Imlist 时,它只是 return 最后一个值。

您需要在 for 循环之外创建一个数据结构,将每一位数据添加到其中,然后 return 取而代之。类似于:

def get_im_list():
    incident_data = []
    incidentlist_access = z['content']
    for im_data in incidentlist_access:
        incident_data.append(im_data['Incident'])
    return incident_data

希望对您有所帮助!

您需要定义一个变量列表,然后将 Access_imslist 值附加到该变量。 像这样:

data = []
def get_im_list():
incidentlist_access = z['content']
for im_data in incidentlist_access:
    Access_imslist = im_data['Incident']
    data.append(Access_imslist)
print(data)