Python:处理gzip压缩json的正确方法是什么?

时间:2011-10-10 19:42:06

标签: python json gzip asp.net-web-api

我找到this snippet,它似乎可以完成这项工作,但我无法理解为什么它会使用StringIO。 f已经不是类似文件的对象吗?有什么需要阅读它,然后让它看起来像一个文件,只是再次阅读?我已经测试了它(好吧,它的稍微修改过的版本),没有StringIO它就无法工作。

3 个答案:

答案 0 :(得分:1)

似乎是python标准库中的一个缺陷,它在Python 3.2中得到修复 见http://www.enricozini.org/2011/cazzeggio/python-gzip/

urlliburllib2文件对象未提供gzip请求的方法tell()

答案 1 :(得分:1)

gunzip代码可能需要一个类似文件的对象,该对象具有seek方法,而HTTP库不太可能提供该方法。什么“不起作用”是什么意思?错误信息?

如果效率是您真正关心的问题,请稍微修改代码,使其使用cStringIO,而不是StringIO。

答案 2 :(得分:0)

我阅读代码相关部分的方式是:

  • 打开网址
  • 将其完全下载到内存中(使用read方法)
  • 将内容存储在StringIO对象中,以便它可用作类文件对象
  • 用它做gzip和json的东西。