【问题标题】:Python: what is the correct way to handle gzipped json?Python:处理gzipped json的正确方法是什么?
【发布时间】:2011-12-04 18:59:22
【问题描述】:

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

【问题讨论】:

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


【解决方案1】:

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

urlliburllib2 文件对象不提供 gzip 要求的方法 tell()

【讨论】:

  • 谢谢!很棒的发现。总有一天我会迁移到 python 3.x :)
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-23
      • 2015-02-11
      • 2014-09-23
      • 2010-10-08
      • 2013-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多