尝试并使用RDSR Navigator排除方法不起作用

问题描述

我正在使用RDSR Navigator,它是一个用于从RDSR DICOM文件https://pypi.org/project/rdsr-navigator/)中提取数据的程序包。 有时,在这种特定类型的文件中,有些缺失的字段取决于我们在层次结构中的位置。 我只是想将0设置为万一一个字段丢失,但try和except方法不起作用。 我是Python的初学者,所以我的问题似乎很明显... 这是我的代码 预先感谢

import rdsr_navigator as nav
file = 'arterio_1.dcm'
sr_obj = nav.read_file(file)

for irr_event in sr_obj.get_all('irradiation_event_x-ray_data'):
    try:
        irr_event['kvp']
    except NameError:
        print('NO')
    else:
        print('YES: ',irr_event['kvp'].value[0])

这就是我得到的回报:

YES:  85.0
YES:  68.0
YES:  86.0
YES:  68.0
[...]
YES:  78.0
YES:  79.0
YES:  83.0
---------------------------------------------------------------------------
SrMissingContentException                 Traceback (most recent call last)
<ipython-input-22-47729fb39cce> in <module>
      1 for irr_event in sr_obj.get_all('irradiation_event_x-ray_data'):
      2     try:
----> 3         irr_event['kvp']
      4     except NameError:
      5         print('NO')

~\Anaconda3\lib\site-packages\rdsr_navigator\sr_element.py in __getitem__(self,concept_names)
     24     def __getitem__(self,concept_names: Union[str,List[str]]) -> 'SrElement':
     25         if isinstance(concept_names,str):
---> 26             return self.get(concept_names)
     27 
     28         return self.get(*concept_names)

~\Anaconda3\lib\site-packages\rdsr_navigator\sr_element.py in get(self,*concept_names)
    106 
    107         if len(concept_names) == 1:
--> 108             return self._get_first(concept_names[0])
    109 
    110         raise ValueError('Invalid argument.')

~\Anaconda3\lib\site-packages\rdsr_navigator\sr_element.py in _get_first(self,concept_name)
    115 
    116         message = 'Could not find: "{0}"'.format(concept_name)
--> 117         raise SrMissingContentException(message=message)
    118 
    119     def get_all(self,concept_name: str) -> Iterator['SrElement']:

SrMissingContentException: Could not find: "kvp"

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)