首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为键追加多个值

为键追加多个值
EN

Stack Overflow用户
提问于 2020-03-31 16:56:12
回答 1查看 62关注 0票数 1
代码语言:javascript
复制
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

dict数据为:

代码语言:javascript
复制
{'abc': {'ACE12345678': {'ERR-2': 2}, {'ERR-3': 4}}}

其中'abc‘是文件名,'ACE12345678’是TransId,'ERR-2‘是错误类型。

我还想为每个转换添加日志行(例如:'ACE12345678'),以便字典看起来如下所示:

代码语言:javascript
复制
{'abc': {'ACE12345678': {'ERR-2': 2, data1\n data2\n data3\n}, {'ERR-3': 4, data1\n data2\n data3\n}}}.

有没有人能帮我得到这个输出。

EN

回答 1

Stack Overflow用户

发布于 2020-03-31 18:01:42

您可以添加一个包含列表中所有行的新密钥loglines

代码语言:javascript
复制
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)

输出:

代码语言:javascript
复制
{'abc': {'ACE12345678': {'ERR-2': 3, 'loglines': ['data1\n']}}}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60946761

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档