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

Retrieving items from a dictionary data type created from a JSON request

我已经尝试了各种方法来循环遍历此代码返回的JSON中的成员项:

1
2
3
4
5
6
7
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的结果是:

1
2
3
4
5
6
7
8
9
{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}

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


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

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

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

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

更多关于词典


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

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

1
data['members']

这打印

1
2
3
4
5
6
7
8
[[{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]访问它的第一个项目。 这仍然是一个清单。 所以你迭代它:

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

这给你:

1
2
{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'}

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

1
2
3
4
5
for item in data['members'][0]:
    print(item['member_amt_pledged'])
    print(item['member_amt_recvd'])
    print(item['member_id'])
    print(item['name'])

这给你:

1
2
3
4
5
6
7
8
10.00
None
1
Murray Hight
10.00
None
4
Martin Tunis

希望这可以帮助。