在python中添加项目到字典(嵌套)

时间:2014-10-18 21:41:47

标签: python dictionary

我知道还有其他几个类似于我的问题,但我并没有真正找到一个适合我的问题。

我在python中有一个字典,如下所示:

 0 =     {
    awayScore = 2;
    awayTeam = "Floda BoIF";
    homeScore = 1;
    homeTeam = "SKIF Semberija";
    time = "00:00";
};
1 =     {
    awayScore = 2;
    awayTeam = "Kode IF";
    homeScore = 1;
    homeTeam = "Partille IF FK ";
    time = "01:00";
};

这是我建造它的方式

dictionary[i] = {"time":time, "homeTeam":homeTeam,"homeScore":homeScore, "awayTeam":awayTeam,
     "awayScore":awayScore}

这是所有项目的“起始位置”,稍后我将获得POST请求,其中客户端发送应添加到字典中的“事件”信息。这样的事情(语法可能不对,但你会得到我想做的事):

{
0 =     {
    awayScore = 2;
    awayTeam = "Floda BoIF";
    events =          {
        0 {
        eventType = Goal;
        name = "Muchache Johansson";
        }
        1 {
        eventType = Yellow Card;
        name = "Muchache Johansson";
        }
    };
    homeScore = 1;
    homeTeam = "SKIF Semberija";
    time = "00:00";
};
1 =     {
    awayScore = 2;
    awayTeam = "Kode IF";
    events =         {
       0 {
        eventType = Goal;
        name = "Garcia Muchache";
       }
    };
    homeScore = 1;
    homeTeam = "Partille IF FK ";
    time = "01:00";
};

所以起初他们根本就没有活动。然后,如果他们没有它,你可以添加一个id为0的事件。也许另一个帖子请求出现在同一个项目上,然后另一个事件应该添加id为1,依此类推。这可能是一个好方法吗?谢谢你的帮助......

1 个答案:

答案 0 :(得分:0)

非常简单>你可以随心所欲地注入元素

dictionary = {0 : {
        'awayScore' : 2,
        'awayTeam' : "Floda BoIF",
        'homeScore' : 1,
        'homeTeam' : "SKIF Semberija",
        'time' : "00:00",
        'events' : {}
       },
       1 : {
        'awayScore' : 2,
        'awayTeam' : "Kode IF",
        'homeScore' : 1,
        'homeTeam' : "Partille IF FK ",
        'time' : "01:00",
        'events' : {}
       }

当事件发生时你可以注入它:例如

dictionary[0]['events'][0] = {
                         'eventType' : 'Goal',
                         'name' : 'Muchache Johansson',
                         }

如果您希望使用事件列表而不是字典来保留订单而无需关心,必须通过"events":[]进行设置并附加

事件
dictionary[0]['events']. append({
                         'eventType' : 'Goal',
                         'name' : 'Muchache Johansson',
                         }