我想要做的是从字符串创建“字典路径”。我不认为这是正确的术语,但基本上,如果我有一个看起来像这样的字典:
'myDict'{
'classes':{
'students':{
'grades':{
'grade':'A'
}
}
}
}
我有一个名为current_dict
的变量,其中包含myDict
,因此current_dict = myDict
和一个存储为"classes.students.grades"
的字符串,我想操纵它字符串,以便[classes][students][grades]
。但是,我希望能够使用它来重新分配current_dict
。所以,我想说current_dict = myDict['classes']['students']['grades']
。我尝试将字符串转换为"[classes][students][grades]"
,但这不起作用,因为它将整个事物标识为单个字符串,包括括号。如何操纵"classes.students.grades"
以便我可以重新分配current_dict = myDict['classes']['students]['grades']
?因此,在我完成此操作后,current_dict
将为grades
,并且看起来像:
{
grade': 'A'
}
答案 0 :(得分:1)
这样的东西?
current_dict = myDict
mystring = "classes.students.grades"
myPath = mystring.split(".")
for part in myPath:
current_dict = current_dict[part]
但我认为如果你只是告诉我们你想要的东西,可能会有更简单的方法。
答案 1 :(得分:0)
试试这个:
string1='classes.students.grades'
string2=string1.split('.')
myDict[string2[0]][string2[1]][string2[2]]['grade2']='B'
myDict
我的输出是
{'classes': {'students': {'grades': {'grade1': 'A', 'grade2': 'B'}}}}
请注意,我在字典中将成绩更改为1级。为什么不使用pandas DataFrame?