Вычисление сумм вложенных словарей в словарьPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Вычисление сумм вложенных словарей в словарь

Сообщение Anonymous »

Я пишу программу, которая помогает сопоставлять данные из нескольких источников для проведения анализа.
Сейчас у меня есть словарь, который выглядит следующим образом:

Код: Выделить всё

output = {
"main":
{
"overall":
{
"overall":
{
"total": {"q1": 0,"q2": 0,"q3": 0,"q4": 0},
"Profit": {"q1": 0,"q2": 0,"q3": 0,"q4": 0},
"Loss": {"q1": 0,"q2": 0,"q3": 0,"q4": 0},
},
"Sub A":
{
"total": {"q1": 0,"q2": 0,"q3": 0,"q4": 0},
"Profit": {"q1": 0,"q2": 0,"q3": 0,"q4": 0},
"Loss": {"q1": 0,"q2": 0,"q3": 0,"q4": 0},
},
"Sub B":
{   "total": {"q1": 0,"q2": 0,"q3": 0,"q4": 0},
"Profit": {"q1": 0,"q2": 0,"q3": 0,"q4": 0},
"Loss": {"q1": 0,"q2": 0,"q3": 0,"q4": 0},
},
},
"A":
{
"overall":
{
"total": {"q1": 0,"q2": 0,"q3": 0,"q4": 0},
"Profit": {"q1": 0,"q2": 0,"q3": 0,"q4": 0},
"Loss": {"q1": 0,"q2": 0,"q3": 0,"q4": 0},
},
"Sub A":
{
"total": {"q1": 0,"q2": 0,"q3": 0,"q4": 0},
"Profit": {"q1": 10,"q2": 8,"q3": 19,"q4": 7},
"Loss": {"q1": 4,"q2": 2,"q3": 6,"q4": 10},
},
"Sub B":
{   "total": {"q1": 0,"q2": 0,"q3": 0,"q4": 0},
"Profit": {"q1": 50,"q2": 70,"q3": 54,"q4": 77},
"Loss": {"q1": 2,"q2": 8,"q3": 5,"q4": 40},
},
},
"B":
{
"overall":
{
"total": {"q1": 0,"q2": 0,"q3": 0,"q4": 0},
"Profit": {"q1": 0,"q2": 0,"q3": 0,"q4": 0},
"Loss": {"q1": 0,"q2": 0,"q3": 0,"q4": 0},
},
"Sub A":
{
"total": {"q1": 0,"q2": 0,"q3": 0,"q4": 0},
"Profit": {"q1": 75,"q2": 23,"q3": 25,"q4": 12},
"Loss": {"q1": 64,"q2": 22,"q3": 12,"q4": 5},
},
"Sub B":
{   "total": {"q1": 0,"q2": 0,"q3": 0,"q4":  0},
"Profit": {"q1": 65,"q2": 53,"q3": 3,"q4": 5},
"Loss": {"q1": 10,"q2": 12,"q3": 1,"q4": 2},
},
}
},
},
},
На данный момент у меня есть данные о прибылях и убытках в необщих словарях.
Я хотел бы иметь функцию, которая заполняет общие итоги, прибыли и убытки. Для этого давайте просто скажем, что прибыли и убытки суммируются, поэтому прибыль 1 и убыток 1 составляют в общей сложности 2.
Из рассмотрения некоторых похожих вопросов и некоторых думаю, у меня есть следующее:

Код: Выделить всё

def calculateOveralls(dictionary, query):
for a in dictionary[query]: #A.B,C
for b in dictionary[query][a]: #Sub A, Sub B, Sub C
if b == "overall":
pass
else:
for c in dictionary[query][a][b]:  # Profit/Loss
if c == "total":
pass
else:
for d in dictionary[query][a][b][c]:  # quarters
dictionary[query][a][b]["total"][d] = dictionary[query][a][b]["total"][d] + dictionary[query][a][b][c][d]
Будем очень благодарны за любую помощь.
Большое спасибо!

Подробнее здесь: https://stackoverflow.com/questions/791 ... dictionary
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»