私は複数レベルの辞書を反復処理する関数を作成し、coord、background、foreground、typeの4つの引数を必要とするssocr
の2番目の関数を実行しました。 )。これはjsonファイルから取った私の辞書です。私はちょうどname
キーの正しい値を取得し、最後iteritemsでiteritemsループの値をオーバーライド
def parse_image(self, d):
bg = d['background']
fg = d['foreground']
results = {}
for k, v in d['boxes'].iteritems():
if 'foreground' in d['boxes']:
myfg = d['boxes']['foreground']
else:
myfg = fg
if k != 'players_home' and k != 'players_opponent':
results[k] = MyAgonism.ssocr(v['coord'], bg, myfg, v['type'])
results['players_home'] = {}
for k, v in d['boxes']['players_home'].iteritems():
if 'foreground' in d['boxes']['players_home']:
myfg = d['boxes']['players_home']['foreground']
else:
myfg = fg
if k != 'background' and k != 'foreground':
for k2, v2 in d['boxes']['players_home'][k].iteritems():
if k2 != 'fouls':
results['players_home'][k] = {}
results['players_home'][k][k2] = MyAgonism.ssocr(v2['coord'], bg, myfg, v2['type'])
return results
。 score
キーは表示されません。それは私のresults['players_home']
辞書
出力にname
オーバーライドscore
次のようになります。... "player4": {"name": 9}, "player5": {"name": 24} ...
私は私が間違って何をやっている... "player4": {"name": 9, "score": value}, "player5": {"name": 24, "score": value} ...
のようなものをご希望ですか?ここでは完全なコードは、念のためにある:これは/問題かもしれませんFull Code
ループ外でそのステートメントを動かすと正しく動作します。ありがとう – Eldar88