Определение переменных в al oop на основе словаря - PullRequest
0 голосов
/ 12 апреля 2020

Я конвертирую DICOM в PNG с Python 3.x и Pydicom. При чтении тегов заголовка DICOM возникают случайные ошибки, из-за которых скрипт обрабатывает sh. До сих пор я работал над этим, используя исключения, как показано ниже:

try: studyd = ds.StudyDate
except: studyd = ''
pass
...

. Этот повторяющийся подход удлиняет код.

К сожалению, мне не удается оптимизировать код, определив словарь, содержащий заголовок Pydicom и целевая переменная и цикл по нему. Как я мог сделать это с чем-то вроде:

ds = pydicom.dcmread()
tags = { 'StudyDate': 'studyd', 'Modality': 'modal', 'PatientName': 'patname', etc.}
for key, val in tags.items():
...

1 Ответ

0 голосов
/ 12 апреля 2020

Попробуйте это:

ds = pydicom.dcmread()
tags = { 'StudyDate': 'studyd', 'Modality': 'modal', 'PatientName': 'patname', etc.}
header_dict = dict()
for key, val in tags.items():
    header_dict[val] = getattr(ds, key)
print(header_dict)

Использование getattr для получения значения заголовка и сохранение его в диктовке против указанного имени

...