Python腳本之解析Base64實用案例(一)

??Python作為腳本語言,比shell和其它腳本更加好用,主要是Python提供了豐富的類庫,現(xiàn)在越來越多的框架都開啟了PyAPI,特別是機器學習方面,可見Python在腳本領(lǐng)域中占的分量有多大。直接上需求:

通過Python解析整形的Base64編碼

??當然,這個案例不僅僅是使用Python那么簡單,因為我試了好多Python的類庫就是解析不了項目中編碼過后的整形,因此,這個案例將結(jié)合 Java 去解碼。

一、Java代碼的編寫和打包

1.1 編寫代碼

package com.nfdw;

import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Base64;

public class Base64ToDecimal {

    public static BigDecimal b64ToDecimal(String value, int decimal){
        BigDecimal new_value = new BigDecimal(new BigInteger(Base64.getDecoder().decode(value)), decimal);
        return new_value;
    }

}

1.2 打包
image.png

??打包成 jar 包后,我們重命名包,然后復制到我們的 Python 項目中
image.png
二、編寫 Python 腳本代碼

2.1 編寫代碼

import jpype
import os.path


'''
    注意函數(shù)里第一行 jar的路徑
'''
def base64_to_decimal(value, decimal):
    jarpath = os.path.join(os.path.abspath('.'), 'libs/base64todecimal.jar')  # 注意 jar 包的路徑
    try:
        jpype.startJVM(jpype.getDefaultJVMPath(), "-ea", "-Djava.class.path=%s" % jarpath)
    except:
        pass
    base64ToDecimal = jpype.JClass('com.nfdw.Base64ToDecimal')
    t = base64ToDecimal()
    result = t.b64ToDecimal(value, decimal)
    return result


if __name__ == '__main__':
    print(base64_to_decimal("AW42AA==", int(2)))
    jpype.shutdownJVM()


2.2 運行結(jié)果
image.png

??好了,到這里,我們的案例已完成。。。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容