見出し画像

【python】JANコードからASINコードに変換する関数【書籍用】

下記の記事の逆の処理を行うコードを記載する。

書籍のJANコード13桁から、ASINコード10桁を作成するコード。

ISBN:13桁(978XXXXXXXXXD)
ISBN:10桁(XXXXXXXXXD)
ASIN:10桁(XXXXXXXXXD')
XX〜は同じだが、DとD’は別の数字。

ASINのチェックデジットについては、こちらを参照。
①チェックデジットを除いた左側の桁から 10,9,8‥‥2 を掛けてそれらの和を取る。
②和を 11 で割って出た余りを 11 から引く。
③10だった時は、”X"とする

関数は下記の通り。jan13は13桁のコードを入力のこと。

def jan_to_asin(jan13):
    s = str(jan13)[3:12]
    a = 10
    c = 0
   
    for i in range(0, len(s)):
        c += int(s[i]) *(a-i)

    d = c % 11
    d = 11 - d 
    if d == 10:
        d = "X"
    return str(s) + str(d)
ASIN = jan_to_asin(jan13)


いいなと思ったら応援しよう!

Jun_python_Django
スタートアップ支援と、社内スタートアップをしながら、実務未経験から独学でプログラミング勉強中。主にpython。スクレイピング、機械学習から始めて、最近はDjangoを学習し、WEBサービス作成中。独学されている初心者の方向けに、技術の記事を中心に書いていきます。