文本编辑器可读的 pickle 格式?
Text editor readable pickle format?
我正在使用一个存储库,其中有一个 pickle 文件,该文件显示数据集中视频的名称以及每个视频的帧数。我可以使用文本编辑器打开它,格式如下:
(dp0
S'v_Lunges_g07_c01.avi'
p1
I248
sS'v_Haircut_g18_c04.avi'
p2
I263
sS'v_Bowling_g21_c03.avi'
p3
I179
sS'v_FrontCrawl_g04_c04.avi'
p4
I328
sS'v_Biking_g15_c05.avi'
p5
I239
sS'v_Swing_g08_c03.avi'
I289
s.
所以我想以相同的格式创建一个类似的,但是当我创建一个字典并将其保存到 pickle 文件时 1。这不是它存储在 2 中的格式。它不可读文本编辑器。
我在这里错过了什么?为什么有些 pickle 文件可以在文本编辑器中读取和编辑,而有些则不能?我需要做什么才能获得泡菜文件的这种格式(显然不仅仅是文本编辑,而是通过 python)?
pickle 协议有不同的版本。只有版本 0 是人类可读的。但无论如何,如果你想在它上面使用文本编辑器,你应该考虑 json 格式,它旨在供人类阅读,而 pickle 则不是。
如果您只需要生成人类可读的 pickle 文件,并且知道它是一种很少记录的格式,只需声明 0 协议即可:
pickle.dump(obj, protocol=0)
我正在使用一个存储库,其中有一个 pickle 文件,该文件显示数据集中视频的名称以及每个视频的帧数。我可以使用文本编辑器打开它,格式如下:
(dp0
S'v_Lunges_g07_c01.avi'
p1
I248
sS'v_Haircut_g18_c04.avi'
p2
I263
sS'v_Bowling_g21_c03.avi'
p3
I179
sS'v_FrontCrawl_g04_c04.avi'
p4
I328
sS'v_Biking_g15_c05.avi'
p5
I239
sS'v_Swing_g08_c03.avi'
I289
s.
所以我想以相同的格式创建一个类似的,但是当我创建一个字典并将其保存到 pickle 文件时 1。这不是它存储在 2 中的格式。它不可读文本编辑器。
我在这里错过了什么?为什么有些 pickle 文件可以在文本编辑器中读取和编辑,而有些则不能?我需要做什么才能获得泡菜文件的这种格式(显然不仅仅是文本编辑,而是通过 python)?
pickle 协议有不同的版本。只有版本 0 是人类可读的。但无论如何,如果你想在它上面使用文本编辑器,你应该考虑 json 格式,它旨在供人类阅读,而 pickle 则不是。
如果您只需要生成人类可读的 pickle 文件,并且知道它是一种很少记录的格式,只需声明 0 协议即可:
pickle.dump(obj, protocol=0)