无法在python中重新运行多个dicitonary集

2024-09-30 02:33:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在查询RESTAPI url&;我试图返回所有字典集,但只能返回一个密钥对。 for循环内部的print语句中的Dictionary输出是预期的输出,返回时只显示一组密钥对。 预期的字典如下所示:

    {'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'}

不是完整的字典


Tags: jsonfordataget字典access密钥requests
2条回答

您需要定义一个变量列表,然后将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)

每次在数据中循环时,Access_imslist都会被覆盖,因此当您(大概)return Access_Imlist时,它只返回最后一个值

您需要在for循环之外创建一个数据结构,向其中添加每一位数据,然后返回该数据结构。比如:

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

希望有帮助

相关问题 更多 >

    热门问题