从JSON请求创建的字典数据类型中检索项目

时间:2014-04-12 00:05:47

标签: python json

我已经尝试过各种方法来循环查看此代码返回的JSON中的成员项:<​​/ p>

import requests,string,simplejson as json
from pprint import pprint

data=requests.get('http://localhost:8090/api/v1/members/2321')
data  = json.loads(data.text)

pprint(data)

这个pprint的结果是:

{u'members': [[{u'member_amt_pledged': u'10.00',
u'member_amt_recvd': None,
u'member_id': u'1',
u'name': u'Murray Hight'},
{u'member_amt_pledged': u'10.00',
u'member_amt_recvd': None,
u'member_id': u'4',
u'name': u'Martin Tunis'}]],
u'error': False}

如何遍历此数据成员数据并评估和打印每一行?

2 个答案:

答案 0 :(得分:0)

代码中的data是python dictionary。一个关键值对。

您可以使用variable[key]格式访问字典中的项目。在你的情况下:

data['members']

打印

[[{u'member_amt_pledged': u'10.00',
   u'member_amt_recvd': None,
   u'member_id': u'1',
   u'name': u'Murray Hight'},
  {u'member_amt_pledged': u'10.00',
   u'member_amt_recvd': None,
   u'member_id': u'4',
   u'name': u'Martin Tunis'}]]

所以data['members']是列表的列表。将其作为data['members'][0]的第一个项目访问。这仍然是一个清单。所以你迭代它:

for item in data['members'][0]:
    print(item)

这会给你:

{u'member_amt_recvd': None, u'member_amt_pledged': u'10.00', u'name': u'Murray Hight', u'member_id': u'1'}
{u'member_amt_recvd': None, u'member_amt_pledged': u'10.00', u'name': u'Martin Tunis', u'member_id': u'4'}

正如您所看到的,每个都是字典,因此您可以访问它的项目:

for item in data['members'][0]:
    print(item['member_amt_pledged'])
    print(item['member_amt_recvd'])
    print(item['member_id'])
    print(item['name'])

这会给你:

10.00
None
1
Murray Hight
10.00
None
4
Martin Tunis

希望这有帮助。

答案 1 :(得分:0)

要循环JSON字典的项目,您可以执行以下操作:

for key, val in data.items():
    print key, val

对于更大的数据集,您应该使用迭代器:

for key, val in data.iteritems(): 
    print key, val

More on dictionaries