Birden çok düzeyli bir sözlüğü yinelemek ve dört bağımsız değişken gerektiren bir ikinci işlevi ssocr
yürütmek için bir işlev oluşturdum: koordinat, arka plan, ön plan, tür (bunlar benim anahtarlarımın değeridir)). Bu bir json dosyasından alınmış olan sözlüğüm. Bir iteritems döngüsünde bir değeri geçersiz kılma
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
Sadece
name
anahtarı için doğru değeri olsun.
score
anahtarı görünmüyor. Benim
results['players_home']
sözlükte
name
geçersiz kılma
score
benziyor
çıkışı: ... "player4": {"name": 9}, "player5": {"name": 24} ...
ben yanlış yapıyorum ... "player4": {"name": 9, "score": value}, "player5": {"name": 24, "score": value} ...
gibi bir şey istersiniz? Full Code
Bu deyimi döngü dışında taşımak doğru şekilde çalışıyor. Teşekkürler – Eldar88