在python中动态创建嵌套字典

时间:2018-11-14 03:37:15

标签: python python-3.x

我正在尝试使用python动态创建嵌套字典。

例如,我需要创建一个函数,该函数将使用节点并使用这些节点构建嵌套字典。

例如:

输入: 'customers.applicant.individual.first_name'

输出:

customers : {
      applicant: {
                 individual:{
                              firstname: {}

             }
           }
         }

,对于每个节点,我需要确保它是否已经存在(如果存在的话),而不要跳过其他创建节点。任何人都可以在这方面提供任何帮助。

谢谢

1 个答案:

答案 0 :(得分:0)

您可以利用python字典可变的事实,并执行以下操作:

input_item1 = 'customers.applicant.individual.first_name.Bob'
input_item2 = 'customers.applicant.individual.first_name.Jim'

inputs = [input_item1, input_item2]
output_dictionary = dict()


for input_item in inputs:
    current_dict = output_dictionary
    for item in input_item.split('.'):   
        if item in current_dict:
            current_dict = current_dict[item]
        else:
            current_dict[item] = dict()
            current_dict = current_dict[item]

print(output_dictionary)

基本上,由于字典是可变的,因此,如果您修改“ current_dict”,则所引用的较大词典中的条目也会被更新。

输出为:

{'customers': {'applicant': {'individual': {'first_name': {'Bob': {}, 'Jim': {}}}}}}