[英]Python dictionary manipulation from dot notation
我想做的是從一個字符串創建一個“字典路徑”。 我不認為這是正確的術語,但基本上,如果我有一個像這樣的字典:
'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'
}
像這樣嗎
current_dict = myDict
mystring = "classes.students.grades"
myPath = mystring.split(".")
for part in myPath:
current_dict = current_dict[part]
但我認為,如果您只告訴我們您要這樣做的目的,那么可能會有一種更簡單的方法。
嘗試這個:
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?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.