簡體   English   中英

Python用字典值更新字典鍵

[英]Python Update Dictionary Key with Dictionary Values

如果您有這樣的字典:

{"key1":{"month":"2017-01","randomNumber":32}}

有沒有一種方法可以使用以下方法添加/更新key1

{"month":"2017-02","randomNumber":12}

這樣結果就是字典的字典,其輸出如下:

{"key1":{"month":"2017-01","randomNumber":32},{"month":"2017-02","randomNumber":12}}

我嘗試過的每件事都會導致嵌套字典出現,因為每次都會覆蓋該值,而不是將新字典附加到先前的值之后,因此輸出為:

{"key1":{"month":"2017-02","randomNumber":12}}

任何援助將不勝感激。

一個代碼示例:

theKeys = ['key1','key2','key3']
sDate = "2017-01-01"
eDate = "2017-12-31"
data = defaultdict(dict)
for aKey in theKeys:
    for dt in rrule.rrule(rrule.MONTHLY, dtstart=sDate, until=eDate):
        year = dt.strftime("%Y")
        month = dt.strftime("%m")
        daysInMonth = str(monthrange(int(year),int(dt.strftime("%m")))[1])
        firstDateMonth = year + "-" + month + "-" "1"
        lastDateMonth = year + "-" + month + "-" + daysInMonth  

        dataResults = {}
        dataResults["month"] = year + "-" + month
        dataResults["randomNumber"] = randint(1, 100)

        data[aKey].update(dataResults)

您已經創建了字典的字典。

{"key1":{"month":"2017-01","randomNumber":32}}

以上是鍵為key1dict ,其值也是dict

您需要創建一個dict list ,然后將新dict添加到該列表中。 以下是示例。

>>> a = dict(q=1,w=[dict(e=3)])
>>> a
{'q': 1, 'w': [{'e': 3}]}
>>> a.get('w')
[{'e': 3}]
>>> a.get('w').append(dict(r=4))
>>> a
{'q': 1, 'w': [{'e': 3}, {'r': 4}]}
>>> a.get('w').append(dict(e=4))
>>> a
{'q': 1, 'w': [{'e': 3}, {'r': 4}, {'e': 4}]}
>>> 

將鍵的值設置為列表並將新元素追加到列表

K = {"key1":[{"month":"2017-01","randomNumber":32},{"month":"2017-02","randomNumber":12}]}
K['key1'].append({"month":"2017-03","randomNumber":42})

結果:

{'key1': [{'randomNumber': 32, 'month': '2017-01'}, {'randomNumber': 12, 'month': '2017-02'}, {'randomNumber': 42, 'month': '2017-03'}]}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM