【发布时间】:2021-12-01 23:55:05
【问题描述】:
我想通过请求流式下载一个 .gz 文件并同时解压缩流式文件。
我想出的代码位是:
import requests
import zlib
url = "https://something"
d = zlib.decompressobj(zlib.MAX_WBITS | 16)
with requests.get(url, stream=True) as r:
r.raise_for_status()
for chunk in r.iter_content(chunk_size=128):
data = d.decompress(chunk)
我还想将未压缩的数据块转换为 json/ 字典。但是,由于不能保证数据的分块部分是完整的 json/字典格式,我无法将数据加载到字典或 json 格式中。然后,我想将数据位发送到将数据插入 mongodb 数据库的管道。
我想做这样的事情:
import requests
import json
import pandas as pd
import zlib
url = "https://something"
d = zlib.decompressobj(zlib.MAX_WBITS | 16)
with requests.get(url, stream=True) as r:
r.raise_for_status()
for chunk in r.iter_content(chunk_size=128):
data = d.decompress(chunk)
#something like the line down there
yield json.load(data)
#or something like
yield df.to_dict(data)
是否有将这些未压缩的块加载到 json 或将它们转换为字典?或者,以其他方式将此数据加载到 mongodb 中?
仅供参考,我的压缩文件约为 90MB,未压缩文件约为 1.2 GB。
【问题讨论】:
标签: python json mongodb dictionary python-requests