无法找到某些标记值

时间:2016-06-10 19:02:59

标签: python int dicom pydicom

我正在尝试使用pydicom找到几个标签的值。出于某种原因,只有某些标签有效,而有些标签没有。以下是解释我的问题的追溯。任何人都可以看到绕过int()base 16问题的方法吗?

>>> ds['0x18','0x21'].value
'SP'
>>> ds['0x18','13x14'].value
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/space/jazz/1/users/gwarner/anaconda/lib/python2.7/site-packages/pydicom-0.9.9-py2.7.egg/dicom/dataset.py", line 276, in __getitem__
tag = Tag(key)
  File "/space/jazz/1/users/gwarner/anaconda/lib/python2.7/site-packages/pydicom-0.9.9-py2.7.egg/dicom/tag.py", line 27, in Tag
arg = (int(arg[0], 16), int(arg[1], 16))
ValueError: invalid literal for int() with base 16: '13x14'

1 个答案:

答案 0 :(得分:0)

&#39; 13x14&#39;不是基数16的有效表示。

在python中,基数为16的数字用&#39; 0x&#39;表示。作为前缀,然后是基数16中的数字。

例如:

0x0,0x1,0x001,0x235,0xA5F,...,都是有效的16位数字表示。

此:

ds['0x18','13x14'].value
例如,

可能是:

ds['0x18','0x14'].value

它应该执行得很好。