问题标签 [pickle]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - __reduce__ 和 __reduce_ex__ 有什么区别?
我知道这些方法用于酸洗/解酸,与 reduce 内置函数无关,但是 2 之间有什么区别,为什么我们需要两者?
python - 我可以将 python 字典腌制到 sqlite3 文本字段中吗?
有什么我应该注意的问题吗?我可以将它存储在文本字段中,还是需要使用 blob?(我对 pickle 或 sqlite 都不太熟悉,所以我想确保我用我的一些高级设计理念在正确的树上吠叫。)
python - 从 xml 创建 python 对象表示的模块
我正在寻找一个易于处理的 python 本机模块来从 xml 创建 python 对象表示。
我通过谷歌找到了几个模块(其中一个是XMLObject),但不想全部尝试。
你认为做这些事情的最好方法是什么?
编辑:我没有提到我想阅读的 XML 不是由我生成的。这是一个现有的 XML 文件,其结构我无法控制。
python - 将 Python 对象序列化到 S60 手机/从 S60 手机序列化一个 Python 对象
我正在寻找一种在基于 CherryPy 的服务器和在 Symbian 手机上运行的 Python 客户端之间序列化通用Python 对象的方法。由于 pyS60 没有实现 pickle 模块,你会怎么做?
我知道Cerealizer,但它要求您在使用前注册课程(我想避免)并且看起来不太成熟。那么,您会使用什么?Python 2.2 的 pickle 模块可能是从源代码中提取的?XML、JSON?几个库中的哪一个?:)
python - python中基本类型的轻量级泡菜?
我想做的就是序列化和反序列化字符串或整数的元组。
我查看了 pickle.dumps() 但字节开销很大。基本上,它看起来占用的空间大约是它需要的 4 倍。此外,我只需要基本类型,不需要序列化对象。
marshal 在空间方面稍微好一点,但结果充满了讨厌的 \x00 字节。理想情况下,我希望结果是人类可读的。
我想只使用 repr() 和 eval(),但有没有一种简单的方法可以在不使用 eval() 的情况下完成此操作?
这是存储在数据库中,而不是文件中。字节开销很重要,因为它可能会在需要 TEXT 列和 varchar 之间产生差异,并且通常数据紧凑性会影响数据库性能的所有领域。
python - ImportError:没有名为 copy_reg pickle 的模块
我正在尝试取消在 MySQL 数据库中存储为 blob 的对象。我已经手动生成了腌制对象并将其存储在数据库中,但是当我尝试取消腌制对象时,我得到以下相当神秘的异常:
ImportError:没有名为 copy_reg 的模块
关于为什么会发生这种情况的任何想法?
繁殖方法
注意:必须在 Windows PC 上执行步骤 1,在 Linux PC 上执行步骤 3 和 4。
1) 在 Windows 电脑上:
2) 手动将 text.txt 的内容插入到运行在 linux 上的 MySQL 数据库的 blob 字段中
3)在Linux机器上运行的Python中,从MySQL获取列的内容
4)假设您将 blob 列的内容放入一个名为 data 的变量中,试试这个:
python - 为什么我在酸洗后在 Python isinstance 中出现意外行为?
撇开使用isinstance 是否有害,我在通过 Pickle 序列化/反序列化对象后尝试评估 isinstance 时遇到了以下难题:
谁能解释为什么 isinstance 在这种情况下会失败?换句话说,为什么 Python 认为这些对象属于两个不同的类?当我删除第二类定义时,isinstance
工作正常。
python - 如何恢复损坏的 python“cPickle”转储?
我正在使用rss2email
将一些 RSS 提要转换为邮件以便于使用。也就是说,我使用它是因为它今天以一种可怕的方式坏了:每次运行时,它只给我这个回溯:
我能够从这个回溯中构建的唯一有用的事实是,保存其所有配置和运行时状态的文件以某种方式损坏~/.rss2email/feeds.dat
。rss2email
显然,rss2email
读取它的状态并cPickle
在每次运行时将其转储回去。
我什'sxOYAAuyzSx0WqN3BVPjE+6pgPU'
至在巨型 (>12MB)feeds.dat
文件中找到了包含上述字符串的行。在我未经训练的眼睛看来,转储似乎没有被截断或以其他方式损坏。
我可以尝试什么方法来重建文件?
Python 版本在 Debian/unstable 系统上为 2.5.4。
编辑
Peter Gibson 和 JF Sebastian 建议直接从 pickle 文件加载,我之前尝试过。显然,需要一个Feed
在 中定义的类rss2email.py
,所以这是我的脚本:
“普通”泡菜变体产生以下回溯:
该变体产生与调用自身cPickle
基本相同的东西
:r2e
编辑 2
按照 JF Sebastian 的建议,将“printf 调试”放入Feed.__setstate__
我的测试脚本中,这些是 Python 退出前的最后几行。
同样的事情发生在使用 python 2.4.4-2 的 Debian/etch 盒子上。
python - 坏泡菜得到错误
我一直在使用一个名为 Mnemosyne 的闪存卡程序,它使用 python 脚本。不久前,我的电脑死机后,我的闪存卡数据库无法访问,我不得不手动关闭它。每当我尝试加载包含我的卡的数据库时,我都会收到此错误。
帮助将不胜感激。
python - 腌制字符串的更有效方法
pickle 模块在酸洗时似乎使用了字符串转义字符;这变得低效,例如在 numpy 数组上。考虑以下
长度分别为 1133 个字符和 4249 个字符。
z.dumps() 显示类似 "\x00\x00" (字符串中的实际零)的内容,但 pickle 似乎正在使用字符串的 repr() 函数,产生 "'\x00\x00'" (零是 ascii 零)。
即 ("0" in z.dumps() == False) 和 ("0" in cPickle.dumps(z.dumps()) == True)