我有一个数据,我想取一些数据。但是我有一个问题,那个字典可以改变并且有更多的领域。该字段是middle_name。如何服用given_name,familly_name,distributor_id,middle_name,name
。如果是
我尝试用len
的字典来做,但是我有len
的字典15。我也尝试着用get('claims')
来接受它并大量使用它,但是花了所有值,不是我想要的
InfoAboutUser={'distributor_id': '',
'family_name': '',
'given_name': '',
'middle_name': ''
'name': ''}
getID=[{
'claims': [{'claimType': 'given_name',
'claimValue': 'string1',
'id': 19052,
'userId': 'string 0'},
{'claimType': 'family_name',
'claimValue': 'string2',
'id': 19053,
'userId': 'string 0'},
{'claimType': 'distributor_id',
'claimValue': 'string3',
'id': 19054,
'userId': 'string 0'},
{'claimType': 'middle_name',
'claimValue': 'string4',
'id': 19055,
'userId': 'string 0'},
{'claimType': 'name',
'claimValue': 'string5',
'id': 19056,
'userId': 'string 0'},
{'claimType': 'vendor_id',
'claimValue': 'string6',
'id': 19057,
'userId': 'string 0'}],
'}]
distributor_id = getID['claims'][2]['claimValue']
InfoAboutUser['distributor_id'] = distributor_id
#print(distributor_id)
given_name = getID['claims'][0]['claimValue']
InfoAboutUser['given_name'] = given_name
#print(given_name)
family_name = getID['claims'][1]['claimValue']
InfoAboutUser['family_name'] = family_name
#print(family_name)
name = getID['claims'][3]['claimValue']
InfoAboutUser['name'] = name
#print(name)
我希望
的输出{'distributor_id': 'string3',
'family_name': 'string2',
'given_name': 'string1',
'middle_name': 'string4',
'name': 'string5'}
或
{'distributor_id': 'string3',
'family_name': 'string2',
'given_name': 'string1',
'middle_name': '' # If it is not available,
'name': 'string5'}
位实际输出为
{'distributor_id': 'string3',
'family_name': 'string2',
'given_name': 'string1',
'middle_name': ''
'name': 'string4'
答案 0 :(得分:0)
如果我正确理解了您的问题,那么解决方案之一可能是遍历所有索赔:
for claim in getID[0].get('claims'):
if(claim.get('claimType')) == "middle_name":
print(claim.get('claimValue'))
答案 1 :(得分:0)
处理字典的问题是,在字典周围包裹了一个数组。
要访问日期,您必须将getID
的第一项与getID[0]
一起使用。之后,您可以如图所示遍历claims
条目。
datas = {}
for claim in getID[0]['claims']:
datas[claim['claimType']] = claim['claimValue']
print(datas)
#{'given_name': 'string1', 'family_name': 'string2', 'distributor_id': 'string3', 'middle_name': 'string4', 'name': 'string5', 'vendor_id': 'string6'}
如果要提取显式,则可以将所需的键定义到列表中,然后将这些条目写入数据字典中。
datas = {}
wanted_keys = ["given_name","familly_name","distributor_id","middle_name","name"]
for claim in getID[0]['claims']:
if claim['claimType'] in wanted_keys:
datas[claim['claimType']] = claim['claimValue']
print(datas)
#{'given_name': 'string1', 'distributor_id': 'string3', 'middle_name': 'string4', 'name': 'string5'}