簡體   English   中英

為一個鍵附加多個值

[英]Appending multiple values for a key

if filename not in dict1.keys():
    dict1[filename] = {}
if transId not in dict1[filename].keys():
    dict1[filename][transId] = {}
if error_type in dict1[filename][transId].keys():
    count1 = dict1[filename][transId][error_type]
    count1 = count1 + 1
    dict1[filename][transId][error_type] = count1

字典數據是:

{'abc': {'ACE12345678': {'ERR-2': 2}, {'ERR-3': 4}}}

其中“abc”是文件名,“ACE12345678”是 TransId,“ERR-2”是錯誤類型。

我還想為每個 transid(例如:'ACE12345678')添加日志行,以便 dict 如下所示:

{'abc': {'ACE12345678': {'ERR-2': 2, data1\n data2\n data3\n}, {'ERR-3': 4, data1\n data2\n data3\n}}}.

有人可以幫我得到這個輸出。

您可以添加一個新的關鍵loglines行,其中包含列表中的所有行:

dict1 = {'abc': {'ACE12345678': {'ERR-2': 2}}}
filename = 'abc'
transID = 'ACE12345678'
error_type = 'ERR-2'
logline = 'data1\n'


my_error = dict1.setdefault(filename, {}).setdefault(transID, {})
my_error[error_type] =  my_error.get(error_type, 0) + 1
my_error.setdefault('loglines', []).append(logline) 

print(dict1)

輸出:

{'abc': {'ACE12345678': {'ERR-2': 3, 'loglines': ['data1\n']}}}

暫無
暫無

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

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