如何在Python中的Mailchimp批量操作中提取响应url?

问题描述 投票:0回答:2

我正在使用批量操作通过 Mailchimp Marketing API 请求数据。我收到一个

response_body_url
,单击它即可将 gzip 压缩的文件下载到本地。

对response_body_url 的 GET 请求会返回 JSON 文件的 gzip 压缩 tar 存档。

但我想在 Python 上提取相同的内容并将其加载为 JSON 数组。 Mailchimp 分享了一个关于相同的指南,但他们使用了一个函数

process_batch_archive
并且没有定义这个函数是什么或者它是如何工作的。 enter image description here

这里是指南的链接:链接 谁能帮助我达到预期的结果?谢谢你。

python-3.x gzip extract tar mailchimp-api-v3.0
2个回答
0
投票
import tarfile
def process_batch_archive():
    if fname.endswith("tar.gz"):
        tar = tarfile.open(fname, "r:gz")
        tar.extractall()
        tar.close()
    elif fname.endswith("tar"):
        tar = tarfile.open(fname, "r:")
        tar.extractall()
        tar.close()

0
投票

返回一个字典,因为 gzip 压缩的存档通常包含很少的文件。

import tarfile

def process_batch_archive(data):
    tar_fileobj = io.BytesIO(data)
    json_contents = {}
    with tarfile.open(fileobj=tar_fileobj, mode="r:gz") as tar:
        for file in tar:
            print (file.name, file.size)
            if file.name.endswith(".json"):
                contentfobj = tar.extractfile(file)
                json_contents[file.name] = json.load(contentfobj)
    return json_contents

x = process_batch_archive(data)
print(x.keys())
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.