如何解决使用gzip压缩将pandas df保存到类似文件的对象中
我正在尝试将 Pandas DF 保存到内存中 json_buffer
并使用以下代码将文件加载到 S3:
json_buffer = StringIO()
df.to_json(json_buffer,orient='records',date_format='iso',compression='gzip')
json_file_name = file_to_load.split(".")[0] + ".json"
s3_conn.put_object(Body=json_buffer.getvalue(),Bucket=s3_bucket,Key=f"{target_path}{json_file_name}")
当我尝试应用压缩时,出现此错误:
RuntimeWarning: compression has no effect when passing a non-binary object as input.\
如何仍然应用压缩并将 JSON 文件通过 .gz 压缩保存到 S3?
谢谢!
解决方法
开始工作,我将分享我的工作方式
使用 BytesIO
和 gzip
:
json_buffer = BytesIO()
with gzip.GzipFile(mode='w',fileobj=json_buffer) as gz_file:
df.to_json(gz_file,orient='records',date_format='iso')
json_file_name = file_to_load.split(".")[0] + ".json.gz"
s3_conn.put_object(Body=json_buffer.getvalue(),Bucket=s3_bucket,Key=f"{target_path}{json_file_name}")
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。