如何使用2.5正确地解决使用2.5进行腌制的问题?

Ale*_*xis 1 python google-app-engine pickle python-2.5 python-2.7

我正在将Web应用程序从Python 2.5运行时迁移到Python 2.7.我的应用程序将pickle数据存储到数据库中,当取消我存储的内容时,我遇到了一些长整数问题:

使用Python 2.5进行pickled的像100003087328067这样的int在Python 2.7下被取消标记为2147483647(即2 ^ 31-1).

如何检索正确的价值?

还有其他问题吗?以str编码为例?(我发现了这个,但它是用python 3:在Python 2.5中剔除数据,在Python 3.1中然后用zlib解压缩)

有关我的上下文的更多信息:我正在迁移Google App Engine应用程序,并使用自定义db.Property存储我的数据,该行为有点像NDB PickleProperty.

Gar*_*tty 5

我建议两个阶段的设置:

编写一个Python 2.5脚本来取消当前值,将它们存储为像JSON这样的通用格式,然后将其读回到Python 2.7应用程序中.

理想情况下,继续使用JSON等格式而不是酸洗,以便将来不依赖于平台.更好的是,将数据存储在数据库中作为正确的规范化数据,因此可以更容易地使用它.