You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python下载Google Play Console报告并保存到本地或StringIO缓冲区

解决方案

你之前调用objects().get()默认返回的是存储对象的元数据,加上alt='media'参数后即可获取实际的文件二进制内容,再结合返回元数据里的gzip压缩格式、utf-16le编码做对应处理即可,两种常见场景的实现代码如下:

前置依赖导入

你现有的依赖不用修改,额外导入以下系统内置模块即可:

import gzip
from io import StringIO

场景1:保存CSV到本地存储

cloud_storage_bucket = 'pubsite_prod_rev_XXXXXXXXXXXXXXXX'
report_to_download = 'reviews/reviews_id.co.sample.sample_202012.csv'
json_file = "你的服务账号密钥文件路径.json"

credentials = Credentials.from_service_account_file(json_file)
storage = build('storage', 'v1',  credentials=credentials)

# 增加alt='media'参数获取文件二进制内容
file_binary = storage.objects().get(
    bucket=cloud_storage_bucket,
    object=report_to_download,
    alt='media'
).execute()

# 解压gzip格式的内容
decompressed_binary = gzip.decompress(file_binary)

# 写入本地文件
with open("google_play_reviews.csv", "wb") as f:
    f.write(decompressed_binary)

场景2:写入StringIO缓冲区(无需存本地,直接供后续处理)

# 接上面获取到decompressed_binary的步骤
# 二进制内容按utf-16le编码转成字符串
csv_content = decompressed_binary.decode("utf-16le")
# 写入StringIO缓冲区
csv_buffer = StringIO(csv_content)

# 后续可直接读取缓冲区内容做处理,比如用pandas加载:
# import pandas as pd
# df = pd.read_csv(csv_buffer)

注意事项

如果你后续需要处理其他类型的Google Play Console报告,只需要对应调整report_to_download的路径即可,无需修改下载逻辑。

内容的提问来源于stack exchange,提问作者victorxu2

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 20:06:07