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 に答える