2017-04-11 2 views
-2

私は次のコードスニペットを持っている:Pythonの - とValueError:int型のための無効なリテラル()ベース10と: 'XYZ'

for image_name in images: 
    img_id = int(image_name.split('.')[0]) 
    img = skimage.io.imread(os.path.join(train_data_path, image_name)) 
    img = np.array([img]) 

そして、次のエラー取得:

Traceback (most recent call last): 
    File "data_original.py", line 99, in <module> 
    create_test_data() 
    File "data_original.py", line 74, in create_test_data 
    img_id = int(image_name.split('.')[0]) 
ValueError: invalid literal for int() with base 10: 'ISIC_1000' 

を私は交換してみましたfloatによってintが、次のエラーを得た:

Traceback (most recent call last): 
    File "data_original.py", line 97, in <module> 
    create_test_data() 
    File "data_original.py", line 72, in create_test_data 
    img_id = float(image_name.split('.')[0]) 
ValueError: could not convert string to float: 'ISIC_1000' 

私は上記を解決するにはどうすればよいです問題?

ありがとうございました。

+2

'ISIC_1000'は整数ではありません。これを文字列として保存するか、 'ISIC_'を取り除く必要があります。 –

+1

'int()'または 'float()'に与えるものは、整数またはfloatに変換できません。 –

+2

文字列 "" ISIC_1000 ""を数値に変換しようとしていますが、数値ではありません。 – DyZ

答えて

0

あなたは、int()に渡された引数が数に変換可能であることを確認すると仮定しなければなりません:文字(AZ)または(例:「XYZ」または「ISIC_1000」)数ではありませんいくつかの他の文字を含むおとり捜査を返しimage_name.split('.')[0]

try/exceptも使用できます。

関連する問題