我有一本看起来像这样的字典,
{'023': {'ARTERIAL': {'Age': '043Y'},
'PORTAL': {'Age': '043Y'},
'VENOUS': {'Age': '043Y'}},
'024': {'ARTERIAL': {'Age': '048Y'},
'PORTAL': {'Age': '048Y'},
'VENOUS': {'Age': '048Y'}}}
我已经使用此设置了这个,
data_dict={}
for folders in os.listdir(new_path):
for AVP in os.listdir(os.path.join(new_path, folders)):
for files in os.listdir(os.path.join(new_path, folders, AVP)):
file = dicom.read_file(os.path.join(new_path, folders, AVP, files))
Name = file.Name
Age = file.Age
at = file.AcquisitionNumber
data_dict.setdefault(folders, {}).setdefault(AVP,{}).setdefault('Age',file.Age)
break
现在和Age一起,我想在年龄字典中添加更多关键值项目,像这样
{'023': {'ARTERIAL': {'Age': '043Y','number': 43, 'time':12:00},
'PORTAL': {'Age': '043Y','number': 3, 'time':2:00},
'VENOUS': {'Age': '043Y','number': 93, 'time':1:00}},
我试过了
data_dict.setdefault(folders, {}).setdefault(AVP,{}).setdefault('Age',file.Age).setdefault(file.AcquisitionNumber, file.AcquisitionNumber)
给了我
AttributeError: 'str' object has no attribute 'setdefault'
有关如何添加更多键值对的任何建议都会有所帮助, 提前致谢
答案 0 :(得分:3)
setdefault
返回字典元素的值,可以是已存在的字符元素值,也可以是您提供的默认值。前两个setdefault()
调用返回嵌套字典,但最后一个返回file.Age
,这是一个字符串。
将最后一个字典分配给变量,然后在其中设置所需的值:
d = data_dict.setdefault(folders, {}).setdefault(AVP,{})
d['Age'] = file.Age
d['number'] = file.AcquisitionNumber