使用 gzip 压缩将 pandas df 保存到类似文件的对象中
Save a pandas df into a file-like object with gzip compression
我正在尝试将 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.\
如何仍然应用压缩并使用 .gz 压缩将 JSON 文件保存到 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}")
我正在尝试将 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.\
如何仍然应用压缩并使用 .gz 压缩将 JSON 文件保存到 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}")