【发布时间】:2021-09-26 13:19:25
【问题描述】:
在 python 中,我知道我可以将字典列表转储到 .json 文件中,以便使用来自 json 模块的 json.dump() 进行存储。但是,在转储列表后,是否可以在 .json 文件中将更多字典追加到该列表中,而无需显式读取加载完整列表,追加,然后再次转储列表?
例如
在.json我有
[{'a': 1}]
是否可以将{'b', 2} 添加到.json 的列表中,使文件变为
[{'a': 1}, {'b', 2}]
实际列表要长得多(大约一千万),所以我想知道是否有更直接的方法可以做到这一点,而无需从文件中读取整个列表以节省内存。
编辑:
PS:其他文件格式我也开放,只要能有效存储大量字典,并能实现上述功能
【问题讨论】:
-
JSON 不适合这种格式。看看jsonlines。
-
“不显式读取加载完整列表,追加,然后再次转储列表”是什么意思?您已将列表保存在文件中,但不想读取该文件?
-
@Kshitiz 好吧,我可以读取文件,但我试图避免读取整个列表(
json.load()到一个可能占用大量内存的变量中) -
您是否尝试从
notepad打开文件并写入。对不起,但我不确定你是在 Windows 还是其他操作系统中。但是,如果文件很大并且您只想添加 2/3 的东西,那么您可以尝试一下。我不确定它是否有效,所以我没有将它作为答案发布,请尝试后通知我!