python3 解析 base64 数据


在阅读 glTF-Tutorial 教程时遇到了解析 base64 数据的问题。

原始 base64 数据为AAABAAIAAAAAAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAA=。包含两个数据:

数据1:数据起始位置为 0,长度为 6,数据类型为 UNSIGNED_SHORT;数据2:数据起始位置为 8,长度为 36,数据类型为 FLOAT

解析代码如下:

import base64
import struct

origin_data = b'AAABAAIAAAAAAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAA='
decoded_data = base64.b64decode(origin_data)

data1 = decoded_data[:6]
format1 = 'H' * int(len(data1)/struct.calcsize('H'))
output_data1 = struct.unpack(format1, data1)
# output_data1 = (0, 1, 2)

data2 = decoded_data[8:]
format2 = 'f' * int(len(data2)/struct.calcsize('f'))
output_data2 = struct.unpack(format2, data2)
# output_data2 = (0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0)

参考资料
base64 — Python 3.7.0 documentation
struct — Python 3.7.0 documentation


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM