-1

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'
4

1 に答える 1

0

「13x14」は 16 進数の有効な表現ではありません。

Python では、基数 16 の数値は接頭辞として '0x' と基数 16 の数値で表されます。

例えば:

0x0、0x1、0x001、0x235、0xA5F、... はすべて有効な 16 進数表現です。


これ:

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

たとえば、次のようになります。

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

そして、それはうまく実行されるはずです。

于 2016-06-10T19:10:52.960 に答える