gpt4 book ai didi

python - 在 pickle 文件中添加新 key

转载 作者:行者123 更新时间:2023-12-04 15:58:20 25 4
gpt4 key购买 nike

我想以迭代的方式存储数据。

如何在已经包含字典的 pickle 中添加一些新键??

例如

with open(filename_directory, 'wb') as f:
pickle.dump({"a" : 1, "b":2 }, f)

new_dict_ = {}
for i in range(10):
new_dict_ [i] = i

with open(filename_directory, 'a') as f:
pickle.dump( update_dict_with_my( new_dict_ ) , f)

最佳答案

附加到 pickle 文件是没有意义的。 pickle 格式是一种二进制结构,如果您附加到包含一种结构的文件,最好的情况是忽略其余部分,最坏的情况是您会破坏现有数据。

(顺便说一句,追加到 json 文件没有什么意义:在这两种情况下,新数据都必须插入到现有结构中,而不是追加)

你可以:

  • 复习字典
  • 用新值更新它(或者反过来,它有不同的效果取决于是否有一些共享键)
  • 将其转储回磁盘

像这样:

with open(filename_directory, 'wb') as f:
pickle.dump({"a" : 1, "b":2 }, f)

new_dict_ = {i:i for i in range(10)}

with open(filename_directory, 'rb') as f:
new_dict_.update(pickle.load(f))

with open(filename_directory, 'wb') as f:
pickle.dump( new_dict_ , f)

读取/更新/转储新 key 优先,先读取,更新和转储:

with open(filename_directory, 'rb') as f:
new_dict_ = update(pickle.load(f))
for i in range(10):
new_dict_ [i] = i

with open(filename_directory, 'wb') as f:
pickle.dump( new_dict_ , f)

请注意,如果您打算在字典中序列化基本类型,则使用 json 格式可能会更好。至少转储格式是可读的,甚至可以手动更新,并且如上所述,如果您尝试附加到 json 文件,它也不起作用,即使它是一个文本文件。至少会有 ]} 最终字符需要移动、添加逗号等...算了吧)。

关于python - 在 pickle 文件中添加新 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51101479/

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