申请记录


@一个资深的烧饼-
@一棵平衡树
@逸天神龙



示例代码:读取文件


Code
import tarfile, json, zlib

tar_gz_path = 'userGachaData_xxxxxx_enc.tar.gz'
with tarfile.open(tar_gz_path, 'r:gz') as tar_file:
    for member in tar_file:
        if member.isfile():
            print(member.name)
            file = tar_file.extractfile(member)
            print(json.loads(zlib.decompress(file.read())))
            break
    
Output
userGachaData/official/428416fb8520e90307e2092278afa8e0.json
{"1651337343": {"c": [["芳汀", 3, 0]], "p": "常驻标准寻访"}, ...}
    
Note
userGachaData/「official/bilibili」/「uuid」.json
{"「timestamp」": {"c": [["「char」", 「rarity」, 「new」], ...], "p": "「pool」"}, ...}
    


示例代码:统计抽数


Code
import tarfile, json, zlib
from tqdm.notebook import tqdm

gachaTotalNum = 0

tar_gz_path = 'userGachaData_xxxxxx_enc.tar.gz'
with tarfile.open(tar_gz_path, 'r:gz') as tar_file:
    for member in tqdm(tar_file, total=len(tar_file.getmembers())):
        if member.isfile():
            file = tar_file.extractfile(member)
            gachaData = json.loads(zlib.decompress(file.read()))
            for ts in gachaData:
                if 'c' in gachaData[ts]:
                    gachaTotalNum += len(gachaData[ts]['c'])
                
print(gachaTotalNum)
    
Output
100% 124010/124010 [01:39<00:00, 2346.31it/s]
68778642