0

我有一个看起来像这样的 json 文档(as_stats.json):

{"failed":5, "received": {"192.168.5.2": 40, "192.168.5.45": 84, "127.0.0.1": 145}}

我的 python 代码如下所示:

import json,urllib
data = open('as_stats.json').read()
d = json.loads(data)

for x in d['received']:
    if (x != '127.0.0.1'):
        print x

返回的值是 IP 地址,它们是变量,即可以随时更改为任何其他地址。我感兴趣的是从每个 IP 地址接收到的文件数量。当我尝试将我的代码重写为

for x,y in d['received']:
        if (x <> '127.0.0.1'):
            print x,y

我收到一条消息,说“解包的值太多”。

如何从键值对中获取我想要的值?

4

1 回答 1

4

利用:

for x,y in d['received'].iteritems():

对 dict 的正常迭代只会给你键。用于itervalues获取值,或iteritems同时获取键和值。

于 2012-08-06T16:37:30.397 回答