[英]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}}
以上是鍵為key1
的dict
,其值也是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.