[英]How to get value in dict if dict can change
我有一個數據,我想取一些數據。 但是我有一個問題,那個字典可以改變並且有更多的領域。 該字段是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'
如果我正確理解了您的問題,那么解決方案之一可能是遍歷所有索賠:
for claim in getID[0].get('claims'):
if(claim.get('claimType')) == "middle_name":
print(claim.get('claimValue'))
處理字典的問題是圍繞它包裝了一個數組。 要訪問日期,您必須將getID
的第一項與getID[0]
一起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'}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.