如何将键,值对添加到字典?

时间:2010-09-23 07:43:12

标签: python

如何将键,值对添加到字典中?。我之前提到过以下格式吗?

{'1_somemessage': [[3L,
                    1L,
                    u'AAA',
                    1689544L,
                    datetime.datetime(2010, 9, 21, 22, 30),
                    u'gffggf'],
                   [3L,
                    1L,
                    u'BBB',
                    1689544L,
                    datetime.datetime(2010, 9, 21, 20, 30),
                    u'ffgffgfg'],
                   [3L,
                    1L,
                    u'CCC',
                    1689544L,
                    datetime.datetime(2010, 9, 21, 22, 30),
                    u'hjhjhjhj'],
                   [3L,
                    1L,
                    u'DDD',
                    1689544L,
                    datetime.datetime(2010, 9, 21, 21, 45),
                    u'jhhjjh']],
 '2_somemessage': [[4L,
                    1L,
                    u'AAA',
                    1689544L,
                    datetime.datetime(2010, 9, 21, 22, 30),
                    u'gffggf'],
                   [4L,
                    1L,
                    u'BBB',
                    1689544L,
                    datetime.datetime(2010, 9, 21, 20, 30),
                    u'ffgffgfg'],
                   [4L,
                    1L,
                    u'CCC',
                    1689544L,
                    datetime.datetime(2010, 9, 21, 22, 30),
                    u'hjhjhjhj'],
                   [4L,
                    1L,
                    u'DDD',
                    1689544L,
                    datetime.datetime(2010, 9, 21, 21, 45),
                    u'jhhjjh']]}

7 个答案:

答案 0 :(得分:110)

将键,值对添加到词典

aDict = {}
aDict[key] = value

动态添加是什么意思。

答案 1 :(得分:44)

为了快速参考,以下所有方法都会添加新密钥'a'(如果它尚不存在),或者它将使用提供的新值更新现有密钥值对:

data['a']=1  

data.update({'a':1})

data.update(dict(a=1))

data.update(a=1)

您也可以将它们混合起来,例如,如果键'c'在数据中但'd'不在,则以下方法将更新'c'并添加'd'

data.update({'c':3,'d':4})  

答案 2 :(得分:7)

我到这里寻找一种方法来添加键/值对作为一个组 - 在我的情况下它是函数调用的输出,所以使用dictionary[key] = value添加对将需要我知道钥匙的名称。

在这种情况下,您可以使用更新方法: dictionary.update(function_that_returns_a_dict(*args, **kwargs)))

请注意,如果dictionary已包含其中一个键,则原始值将被覆盖。

答案 3 :(得分:6)

我不确定“动态”是什么意思。如果您的意思是在运行时将项目添加到字典中,就像dictionary[key] = value一样简单。

如果你想创建一个带键的字典,值为(在编译时),然后使用(惊喜!)

dictionary[key] = value

答案 4 :(得分:3)

如果您想在表单中添加新记录

newRecord = [4L, 1L, u'DDD', 1689544L, datetime.datetime(2010, 9, 21, 21, 45), u'jhhjjh']

messageName,其中messageName格式X_somemessage可以,但不必在您的字典中,然后以这种方式执行:

myDict.setdefault(messageName, []).append(newRecord)

通过这种方式,它会被附加到现有的messageName,或者会为新的messageName创建新的列表。

答案 5 :(得分:1)

可能有一段时间这也会有所帮助

import collections
#Write you select statement here and other things to fetch the data.
 if rows:
            JArray = []
            for row in rows:

                JArray2 = collections.OrderedDict()
                JArray2["id"]= str(row['id'])
                JArray2["Name"]= row['catagoryname']
                JArray.append(JArray2)

            return json.dumps(JArray)

示例输出:

[
    {
        "id": 14
        "Name": "someName1"
    },
    {
        "id": 15
        "Name": "someName2"
    }
]

答案 6 :(得分:-1)

插入/追加到词典

{"0": {"travelkey":"value", "travelkey2":"value"},"1":{"travelkey":"value","travelkey2":"value"}} 

travel_dict={} #initialize dicitionary 
travel_key=0 #initialize counter

if travel_key not in travel_dict: #for avoiding keyerror 0
    travel_dict[travel_key] = {}
travel_temp={val['key']:'no flexible'}  
travel_dict[travel_key].update(travel_temp) # Updates if val['key'] exists, else adds val['key']
travel_key=travel_key+1