gpt4 book ai didi

python - 有没有办法使用 `json.dump` 和 `gzip` ?

转载 作者:行者123 更新时间:2023-12-04 22:40:03 24 4
gpt4 key购买 nike

Here是关于如何使用 json.dumps 的一个很好的答案写入 gzip 文件。我想做的是使用 dump而是直接将 json 序列化为 GzipFile 的方法目的。

示例代码:

import gzip, json

data = # a dictionary of data here
with gzip.open(write_file, 'w') as zipfile:
json.dump(data, zipfile)

引发的错误是
TypeError: memoryview: a bytes-like objet is required, not 'str'

我相信这是因为 gzip write() 方法需要一个字节对象传递给它。根据 documentation ,

The json module always produces str objects, not bytes objects. Therefore, fp.write() must support str input.



有没有办法包装 json字符串输出为字节,以便 GzipFilewrite()会处理吗?或者是使用 json.dumps 的唯一方法和 encode()将生成的字符串转换为字节对象,如其他链接答案中一样?

最佳答案

gzip 模块开箱即用地支持它:只需声明一个编码,它将在将 unicode 字符串写入文件之前将其编码为字节:

import gzip
with gzip.open(write_file, 'wt', encoding="ascii") as zipfile:
json.dump(data, zipfile)
确保您指定使用文本模式 ( 'wt')。
由于 json 已经编码了任何非 ascii 字符,因此 ascii 编码就足够了,但是您可以将任何其他与 ascii 兼容的编码用于前 128 个代码点,例如 Latin1、UTF-8 等

关于python - 有没有办法使用 `json.dump` 和 `gzip` ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49534901/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com