Python脚本之解析Base64实用案例(一)

  Python作为脚本语言,比shell和其它脚本更加好用,主要是Python提供了丰富的类库,现在越来越多的框架都开启了PyAPI,特别是机器学习方面,可见Python在脚本领域中占的分量有多大。直接上需求:

通过Python解析整形的Base64编码

  当然,这个案例不仅仅是使用Python那么简单,因为我试了好多Python的类库就是解析不了项目中编码过后的整形,因此,这个案例将结合 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


'''
    注意函数里第一行 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 运行结果
image.png

  好了,到这里,我们的案例已完成。。。

你可能感兴趣的:(Python脚本之解析Base64实用案例(一))