如何使用python访问json文件字典中的键值
我有一个从api中提取json数据的脚本,我希望它在提取完所述数据后,解码并选择要存储到db中的标记。现在我只需要让脚本返回特定的调用值。在我尝试解码之前,这就是脚本的样子如何使用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
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
托德·杨:雷托德·杨
乔·唐纳利:森多尼
丹尼尔·科茨:森丹考茨