Python从输入构造字典的最佳方法

2024-04-19 23:01:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图从用户输入构建一个嵌套字典。唯一的问题是,用户可以选择不输入这些输入。在这些情况下,我希望字典完全排除该字段。例如:

ids = 1234
dmas = 5678

我希望字典是这样的:

^{2}$

但是,如果用户决定不包括某些输入:

ids = None
dmas = 5678

我希望字典是这样的:

d = {profile:{"dma_targets":dmas}}

我有点困在这里,这似乎是一件非常简单的事情,因为如果我想要一张单子而不是一张单子,这很容易做到。我遇到的一个问题是:

x = "dma_targets":dmas 

不是一个有效的对象,所以我很难构建这些片段,然后将它们添加到字典中。非常感谢!在


Tags: 对象用户noneids字典情况profile事情
5条回答

如果我理解正确,您需要一个具有不同类型的嵌套字典(python允许您这样做)。在

from collections import defaultdict
d  = defaultdict(lambda: defaultdict(list))
d['a']['b'].append('bla')
d[15] = 15
d = {profile:{}}
if ids:
    d['profile']['ids'] = ids
if dmas:
    d['profile']['dma_targets'] = dmas

来点dict comprehension怎么样?在

fkeys = ['dma_targets', 'ids']
fvals = [5678, None]
d = {'profile': {k:v for (k,v) in zip(fkeys, fvals) if v is not None}}

得到d

^{pr2}$

相关问题 更多 >