如何使用python访问json文件字典中的键值

如何使用python访问json文件字典中的键值,python,json,decode,Python,Json,Decode,我有一个从api中提取json数据的脚本,我希望它在提取完所述数据后,解码并选择要存储到db中的标记。现在我只需要让脚本返回特定的调用值。在我尝试解码之前,这就是脚本的样子 import requests def call(): payload = {'apikey':'945e8e8499474b7e8d2bc17d87191bce', 'zip' : '47120'} bas_url = 'http://congress.api.sunlightfoundation.com/legislat

我有一个从api中提取json数据的脚本,我希望它在提取完所述数据后,解码并选择要存储到db中的标记。现在我只需要让脚本返回特定的调用值。在我尝试解码之前,这就是脚本的样子

import requests
def call():
payload = {'apikey':'945e8e8499474b7e8d2bc17d87191bce', 'zip' : '47120'}
bas_url = 'http://congress.api.sunlightfoundation.com/legislators/locate'
r = requests.get(bas_url, params = payload)
grab = r.json()
return grab
'results':[{'twitter\u id':'reptoddyong','ocd\u id': “ocd部门/国家:美国/州:in/cd:9”,“OCU电子邮件”: “代表。Toddyoung@opencongress.org“,”中间名“:”C.,”votesmart_id“: 120345,“名字”:“Todd”,“youtube\u id”:“Reptoddyong”, ‘姓’:‘年轻’,‘传记指南’id:‘Y000064’,‘地区’:9, “昵称”:无,“办公室”:“1007 Longworth House办公楼”, “任期开始”为“2015-01-06”,“托马斯id”为“02019”,“政党”为“R”, 'in_office':True,'title':'Rep','govtrack_id':'412428','crp_id': ‘N00030670’、‘任期结束’:‘2017-01-03’、‘商会’:‘众议院’, “州名”:“印第安纳州”,“传真”:“202-226-6866”,“电话”: ‘202-225-5315’、‘性别’:‘M’、‘fec_ID’:[‘H0IN09070’]、‘州’: '在','网站':'','名称后缀':无, “icpsr_id”:21133,“facebook_id”:“186203844738421”,“联系方式”: “生日” '1972-08-24'},{'twitter_id':'sendonelly','ocd_id': “强迫症科/国家:美国/州:in”,“oc_电子邮件”: ”“参议员。Donnelly@opencongress.org“,”中间名“:无,'lis\u id': “S356”、“名字”:“Joe”、“youtube\u id”:“Sendonnely”、“姓氏”: “Donnelly”,“bioguide_id”:“D000607”,“地区”:无,“昵称”: 无,“办公室”:720哈特参议院办公楼,“州级”: “少年”,“托马斯·迪德”:“01850”,“学期开始”:“2013-01-03”,“派对”: ‘D’、‘in_office’:True,‘title’:‘Sen’、‘govtrack_id’:‘412205’, “crp_id”:“N00026586”,“任期结束”:“2019-01-03”,“议院”:“参议院”, “州名”:“印第安纳州”,“传真”:“202-225-6798”,“电话”: ‘202-224-4814’,‘性别’:‘M’,‘参议院班级’:1,‘联邦选举委员会ID’: [H4IN02101','S2IN00091','state':'IN','votesmart_id':34212, “网站”:“名称后缀”:无, “icpsr_id”:20717,“facebook_id”:“168059529893610”,“联系方式”: “生日” '1955-09-28'},{'twitter_id':'SenDanCoats','ocd_id': “强迫症科/国家:美国/州:in”,“oc_电子邮件”: ”“参议员。Coats@opencongress.org“,”中间名“:”雷“,”lis_id“:”S212”, “名字”:“丹尼尔”,“youtube id”:“SenatorCoats”,“姓氏”: “Coats”、“bioguide_id”:“C000542”、“地区”:无,“昵称”:无, “办公室”:“493罗素参议院办公楼”,“州级”: ‘高级’、‘thomas_id’:‘00209’、‘学期开始’:‘2011-01-05’、‘派对’: ‘R’、‘in_office’:True、‘title’:‘Sen’、‘govtrack_id’:‘402675’, “crp_id”:“N00003845”,“任期结束”:“2017-01-03”,“议院”:“参议院”, “州名”:“印第安纳州”,“传真”:“202-228-1820”,“电话”: ‘202-224-5623’,‘性别’:‘M’,‘参议院班级’:3,‘联邦选举委员会ID’: ['S0IN00053'],'state':'IN','votesmart_id':53291,'website': “名称后缀”:无,“icpsr\U id”:14806, “facebook_id”:“180671148633644”,“联系方式”: “‘生日’:‘1943-05-16’}”

这就是返回的json数据,我想特别调用IE
{'twitter\u id':'reptoddyong'},或者{'first\u name':'Todd'}


不要让我的脚本返回它检索到的整个json文件,而是查看返回的数据结构。这是一本包含词典列表的词典。您可以使用
“结果”
键访问列表:

l = r.json()['results']
从这里开始,包含您要查找的项目的词典是列表的第一项,因此:

d = l[0]
可以从字典中检索特定值:

print(d['twitter_id'])
print(d['first_name'])
您可以将其简化为:

r.json()['results'][0]['twitter_id']
r.json()['results'][0]['first_name']
您可能希望迭代列表:

for d in r.json()['results']:
    print('{first_name} {last_name}: {twitter_id}'.format(**d))
这将输出:

Todd Young: RepToddYoung Joe Donnelly: SenDonnelly Daniel Coats: SenDanCoats 托德·杨:雷托德·杨 乔·唐纳利:森多尼 丹尼尔·科茨:森丹考茨