【发布时间】:2019-03-27 14:41:33
【问题描述】:
样本输入代替separate_function:
separate_function = [('primary_1', 'val_1'), ('primary_1', 'val_2'), ('primary_3', 'val_2')]
预期输出,即my_dictionary:
{
"main": {
"primary_1": [
"val_1",
"val_2"
],
"primary_3": [
"val_2"
]
}
}
我想创建一个字典,my_dictionary 就像上面一样。
预期输出中有多个键,例如 "main"。为了降低问题的复杂性,我对它进行了硬编码。
有一个生成器函数,我需要对其进行迭代以创建这种格式。再次为简单起见,我将其显示为元组列表。到目前为止我已经尝试过:
from collections import defaultdict
my_dictionary = defaultdict(dict)
for primary_var, value in separate_function:
my_dictionary['main'][primary_var].append(value)
# This would have worked if I have expected values as string
# rather than a list in that case I can write the above line like this:
my_dictionary['main'][primary_var] = value
try, except 可以使用,如果KeyError 则先分配,否则附加可以完成,但是,我正在寻找更好的清洁解决方案。请建议。谢谢。
【问题讨论】:
标签: python json python-2.7 dictionary defaultdict