カウンターにアイテムを追加する必要があり、より動的にする必要があります。
hash_data = [{'campaign_id': 'cid2504649263',
'country': 'AU',
'impressions': 9000,
'region': 'Cairns',
'utcdt': datetime.datetime(2013, 6, 4, 6, 0)},
{'campaign_id': 'cid2504649263',
'country': 'AU',
'impressions': 3000,
'region': 'Cairns',
'utcdt': datetime.datetime(2013, 6, 4, 6, 0)},
{'campaign_id': 'cid2504649263',
'country': 'AU',
'impressions': 3000,
'utcdt': datetime.datetime(2013, 6, 4, 7, 0)}]
たとえば、ハッシュのリストの最後の要素にはリージョンが含まれていません。それでも、以下は要素を追加する方法であり、エラーが発生します。
C = Counter()
for item in hash_data:
C[item['utcdt'],item['campaign_id'], item['country'], item['region']] += item[metric]
理想的にはこのようなものですが、もちろん機能しません
C = Counter()
for item in hash_data:
m1 = item.keys()
m2 = []
for i in ml:
if i!='impression':
ms.add(i)
C[ml] += item[metric]