使用Python中的REST API检索JSON

时间:2014-08-20 19:22:01

标签: python json

我在python中有以下内容:

import requests, json

cashboardapi = "http://api.cashboardapp.com/employees"
data = json.dumps({'name':'Cashboard', 'description':'Cashboard App API Request for Expenses'}) 
headers = {'content-type': 'application/json', 'Accept': 'application/json'}
r = requests.post(cashboardapi, data, headers=headers, auth=('SubDomain', 'API-KEY'))

mydata = r.json()

print(mydata)

我更改了API keym(等),以免暴露个人信息。

我得到的输出是:

[{u'last_name': u'Lastname', u'country_code': u'US', u'links': {u'manager_memberships': u'https://api.cashboardapp.com/employees/79164/manager_memberships', u'self': u'https://api.cashboardapp.com/employees/79164', u'project_assignments': u'https://api.cashboardapp.com/employees/79164/project_assignments'}, u'manager_memberships': [], u'is_archived': False, u'updated_at': u'2014-08-20T08:12:33-07:00', u'custom_1': u'', u'custom_2': u'', u'custom_3': u'', u'email_address': u'Chris@example.com', u'id': 79164, u'city': u'Any Town', u'first_name': u'Chris', u'employee_status_code': 2, u'zip': u'90210', u'state': u'HI', u'last_login': u'2014-08-20T08:12:33-07:00', u'address2': u'', u'login_count': 250, u'telephone': u'123-555-1234', u'address': u'55 Real Street Blvd', u'password': u'', u'url': u'', u'notes': u''}]

这似乎是一个字符串,我不知道如何从那里开始。 这给了我“理论上”用户ID 79164,我希望将本周的时间条目相加。

1 个答案:

答案 0 :(得分:1)

你没有收到字符串; mydata是一个列表,其中包含1个条目,一个字典。

要打印用户ID,您可以访问该条目:

print mydata[0]['id']

在探索这些回复时,我总觉得pprint.pprint() function非常有用;它以更易读的方式打印出这样的结构:

>>> pprint(mydata)
[{u'address': u'55 Real Street Blvd',
  u'address2': u'',
  u'city': u'Any Town',
  u'country_code': u'US',
  u'custom_1': u'',
  u'custom_2': u'',
  u'custom_3': u'',
  u'email_address': u'Chris@example.com',
  u'employee_status_code': 2,
  u'first_name': u'Chris',
  u'id': 79164,
  u'is_archived': False,
  u'last_login': u'2014-08-20T08:12:33-07:00',
  u'last_name': u'Lastname',
  u'links': {u'manager_memberships': u'https://api.cashboardapp.com/employees/79164/manager_memberships',
             u'project_assignments': u'https://api.cashboardapp.com/employees/79164/project_assignments',
             u'self': u'https://api.cashboardapp.com/employees/79164'},
  u'login_count': 250,
  u'manager_memberships': [],
  u'notes': u'',
  u'password': u'',
  u'state': u'HI',
  u'telephone': u'123-555-1234',
  u'updated_at': u'2014-08-20T08:12:33-07:00',
  u'url': u'',
  u'zip': u'90210'}]