我有一个从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
'结果':[{'twitter_id':'RepToddYoung','ocd_id': 'ocd-division / country:us / state:in / cd:9','oc_email': 'Rep.Toddyoung@opencongress.org','middle_name':'C','votesmart_id': 120345,'first_name':'Todd','youtube_id':'RepToddYoung', 'last_name':'Young','bioguide_id':'Y000064','district':9, '昵称':无,'办公室':'1007 Longworth House办公楼', 'term_start':'2015-01-06','thomas_id':'02019','party':'R', 'in_office':是的,'title':'Rep','govtrack_id':'412428','crp_id': 'N00030670','term_end':'2017-01-03','chamber':'house', 'state_name':'Indiana','fax':'202-226-6866','phone': '202-225-5315','性别':'M','fec_ids':['H0IN09070'],'州': 'IN','网站':'http://toddyoung.house.gov','name_suffix':无, 'icpsr_id':21133,'facebook_id':'186203844738421','contact_form': 'https://toddyoungforms.house.gov/give-me-your-opinion','生日': '1972-08-24'},{'twitter_id':'SenDonnelly','ocd_id': 'ocd-division / country:us / state:in','oc_email': 'Sen.Donnelly@opencongress.org','middle_name':无,'lis_id': 'S356','first_name':'Joe','youtube_id':'sendonnelly','last_name': 'Donnelly','bioguide_id':'D000607','district':无,'昵称': 没有,'办公室':'720哈特参议院办公楼','state_rank': 'junior','thomas_id':'01850','term_start':'2013-01-03','party': 'D','in_office':是的,'title':'Sen','govtrack_id':'412205', 'crp_id':'N00026586','term_end':'2019-01-03','chamber':'参议院', 'state_name':'Indiana','fax':'202-225-6798','phone': '202-224-4814','性别':'M','senate_class':1,'fec_ids': ['H4IN02101','S2IN00091'],'州':'IN','votesmart_id':34212, 'website':'http://www.donnelly.senate.gov','name_suffix':无, 'icpsr_id':20717,'facebook_id':'168059529893610','contact_form': 'http://www.donnelly.senate.gov/contact/email-joe','生日': '1955-09-28'},{'twitter_id':'SenDanCoats','ocd_id': 'ocd-division / country:us / state:in','oc_email': 'Sen.Coats@opencongress.org','middle_name':'雷','lis_id':'S212', 'first_name':'Daniel','youtube_id':'SenatorCoats','last_name': 'Coats','bioguide_id':'C000542','district':无,'昵称':无, 'office':'493 Russell Senate Office Building','state_rank': 'senior','thomas_id':'00209','term_start':'2011-01-05','party': 'R','in_office':是的,'标题':'森','govtrack_id':'402675', 'crp_id':'N00003845','term_end':'2017-01-03','chamber':'参议院', 'state_name':'Indiana','fax':'202-228-1820','phone': '202-224-5623','性别':'M','senate_class':3,'fec_ids': ['S0IN00053'],'州':'IN','votesmart_id':53291,'网站': 'http://www.coats.senate.gov','name_suffix':无,'icpsr_id':14806, 'facebook_id':'180671148633644','contact_form': 'http://www.coats.senate.gov/contact/','生日':'1943-05-16'}]}
那是json数据返回的,我想专门调用IE {'twitter_id': 'RepToddYoung'}, or {'first_name': 'Todd'}
而不是我的脚本返回它检索的整个json文件
答案 0 :(得分:0)
查看您要获取的数据结构。它是一个包含字典列表的字典。您可以使用'results'
键访问列表:
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