Python在内存中解压gzip数据,无需文件

2023-12-05

我已经从 HTTP 回复中压缩了数据。我有以下代码:

def gzipDecode(self, content):
    import StringIO
    import gzip

    outFilePath = 'test'

    compressedFile = StringIO.StringIO(content)
    decompressedFile = gzip.GzipFile(fileobj=compressedFile)
    with open(outFilePath, 'w') as outfile:
        outfile.write(decompressedFile.read())

    data = ''
    with open(outFilePath, 'r') as myfile:
        data=myfile.read().replace('\n', '')

    return data

它解压缩输入的 gzip 压缩内容并返回字符串(http 回复是 gzip 压缩的 json)。 - 有用。

但我需要它而不需要创建test文件 - 全部在内存中。

我将其修改为:

def gzipDecode(self, content):
    import StringIO
    from io import BytesIO
    import gzip

    outFile = StringIO.StringIO()

    compressedFile = StringIO.StringIO(content)
    decompressedFile = gzip.GzipFile(fileobj=compressedFile)

    outFile.write(decompressedFile.read())
    outFile.flush()

    data = outFile.read().replace('\n', '')
    print "_" + data + "_"
    return data

但它崩溃了(gzip解码生成空输出)在解析 json 时:

Traceback (most recent call last):
__
  File "/usr/lib/python2.7/SocketServer.py", line 593, in process_request_thread

    self.finish_request(request, client_address)
----------------------------------------
  File "/usr/lib/python2.7/SocketServer.py", line 334, in finish_request
Exception happened during processing of request from ('10.123.66.3', 39853)
    self.RequestHandlerClass(request, client_address, self)
----------------------------------------
  File "/usr/lib/python2.7/SocketServer.py", line 649, in __init__
    self.handle()
  File "/usr/lib/python2.7/BaseHTTPServer.py", line 340, in handle
    self.handle_one_request()
  File "/usr/lib/python2.7/BaseHTTPServer.py", line 328, in handle_one_request
    method()
  File "/tmp/test_server.py", line 92, in do_POST
    data = json.loads(file_content)
  File "/usr/lib/python2.7/json/__init__.py", line 338, in loads
    return _default_decoder.decode(s)
  File "/usr/lib/python2.7/json/decoder.py", line 366, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/lib/python2.7/json/decoder.py", line 384, in raw_decode
    raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded

我做什么坏事了?


您需要先回到开头才能阅读:

outFile.write(decompressedFile.read())
outFile.flush()
outFile.seek(0)

data = outFile.read().replace('\n', '')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python在内存中解压gzip数据,无需文件 的相关文章

  • for 循环如何评估其参数

    我的问题很简单 Does a for循环评估它每次使用的参数 Such as for i in range 300 python 是否会为此循环的每次迭代创建一个包含 300 个项目的列表 如果是的话 这是避免这种情况的方法吗 lst ra
  • Python从int到string的快速转换

    我正在用 python 求解大量阶乘 并发现当我完成计算阶乘时 需要相同的时间才能转换为字符串以保存到文件中 我试图找到一种将 int 转换为字符串的快速方法 我将举一个计算和 int 转换时间的例子 我正在使用通用的 a str a 但感
  • 希伯来语中的稀疏句子标记化错误

    尝试对希伯来语使用稀疏句子标记 import spacy nlp spacy load he doc nlp text sents list doc sents I get Warning no model found for he Onl
  • 将 numpy 数组写入文本文件的速度

    我需要将一个非常 高 的两列数组写入文本文件 而且速度非常慢 我发现如果我将数组改造成更宽的数组 写入速度会快得多 例如 import time import numpy as np dataMat1 np random rand 1000
  • 如何使用显式引用转储 YAML?

    递归引用非常适合ruamel yaml or pyyaml ruamel yaml dump ruamel yaml load A A id001 id001 然而 它 显然 不适用于普通引用 ruamel yaml dump ruamel
  • TF map_fn 或 while_loop 用于不同形状的张量列表

    我想处理不同形状的张量序列 列表 并输出另一个张量列表 考虑每个时间戳上具有不同隐藏状态大小的 RNN 就像是 输入 tf ones 1 2 2 tf ones 2 2 3 tf ones 3 2 1 输出 tf zeros 1 2 4 t
  • Tweepy StreamListener 到 CSV

    我是 python 新手 我正在尝试开发一个应用程序 使用 Tweepy 和 Streaming API 从 Twitter 检索数据并将数据转换为 CSV 文件 问题是此代码不会创建输出 CSV 文件 也许是因为我应该将代码设置为在实现例
  • 了解 Python 中的酸洗

    我最近接到一项作业 需要以腌制形式放置一本字典 其中每个键引用一个列表 唯一的问题是我不知道腌制形式是什么 谁能给我指出一些好的资源的正确方向来帮助我学习这个概念 pickle 模块实现了一个基本但强大的算法 用于序列化和反序列化 Pyth
  • 根据开始列和结束列扩展数据框(速度)

    我有一个pandas DataFrame含有start and end列 加上几个附加列 我想将此数据框扩展为一个时间序列 从start值并结束于end值 但复制我的其他专栏 到目前为止 我想出了以下内容 import pandas as
  • 使用 scipy curve_fit 拟合噪声指数的建议?

    我正在尝试拟合通常按以下方式建模的数据 def fit eq x a b c d e return a 1 np exp x b c np exp x d e x np arange 0 100 0 001 y fit eq x 1 1 1
  • Apache Spark 中的高效字符串匹配

    我使用 OCR 工具从屏幕截图中提取文本 每个大约 1 5 句话 然而 当手动验证提取的文本时 我注意到时不时会出现一些错误 鉴于文本 你好 我真的很喜欢 Spark 我注意到 1 像 I 和 l 这样的字母被 替换 2 表情符号未被正确提
  • Apache Camel 的 JsonMappingException

    我在骆驼路线上遇到以下异常 Caused by com fasterxml jackson databind JsonMappingException No serializer found for class org apache cam
  • 动态 __init_subclass__ 方法的参数绑定

    我正在尝试让类装饰器工作 装饰器会添加一个 init subclass 方法到它所应用的类 但是 当该方法动态添加到类中时 第一个参数不会绑定到子类对象 为什么会发生这种情况 举个例子 这是可行的 下面的静态代码是我试图最终得到的示例 cl
  • PyTorch DataLoader 对并行运行的批次使用相同的随机种子

    有一个bug https tanelp github io posts a bug that plagues thousands of open source ml projects 在 PyTorch Numpy 中 当并行加载批次时Da
  • Python]将两个文本文件合并为一个(逐行)[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我是蟒蛇新手 我想做的是将文件 a 和文件 b 逐行合并到一个文件中 例如 text file a a n b n c text fi
  • 无法在 python 3.8 上将带有 webapp 的 python 部署到 azure

    我正在尝试使用部署一个测试项目Flask使用以下方法将框架迁移到 Azure 云中Azure CLI https learn microsoft com en us azure app service containers quicksta
  • 如何使用 Keras ImageDataGenerator 预测单个图像?

    我已经训练 CNN 对图像进行 3 类分类 在训练模型时 我使用 keras 的 ImageDataGenerator 类对图像应用预处理功能并重新缩放它 现在我的网络在测试集上训练得非常准确 但我不知道如何在单图像预测上应用预处理功能 如
  • 处理大文件的最快方法?

    我有多个 3 GB 制表符分隔文件 每个文件中有 2000 万行 所有行都必须独立处理 任何两行之间没有关系 我的问题是 什么会更快 逐行阅读 with open as infile for line in infile 将文件分块读入内存
  • 如何在 robobrowser-python 中发出 POST 请求

    http robobrowser readthedocs org en latest api html http robobrowser readthedocs org en latest api html 我正在尝试使用 APIbrows
  • python sklearn中的fit方法

    我问自己关于 sklearn 中拟合方法的各种问题 问题1 当我这样做时 from sklearn decomposition import TruncatedSVD model TruncatedSVD svd 1 model fit X

随机推荐

  • Python,从字符串中删除所有html标签

    我正在尝试使用 beautifulsoup 和以下代码从网站访问文章内容 site www example com page urllib2 urlopen req soup BeautifulSoup page content soup
  • Java Process.exitValue() 中的值的含义是什么?

    我在用Process via ProcessBuilder运行用 C 代码编写的可执行文件 我正在捕捉Process exitValue 对此退出值做出反应 我注意到并非所有退出值都来自可执行文件 例如 我得到的退出值是 139 但在我的
  • 第一个子元素增加内容的宽度,直到父边界调用溢出省略号

    因此 可以快速了解我正在尝试完成的任务 其中 灰色 父容器的宽度可变 第一个子项 红色 根据其内容具有可变的自动宽度 直到第二个子项 绿色 到达父级宽度的末尾 其中文本溢出 需要在第一个子项 红色 和第二个子项 绿色 上调用省略号始终位于其
  • 如何防止子节点进程被父节点进程杀死?

    我使用 child process spawn child process fork 从 node js 应用程序启动多个子进程 当使用 Ctrl C 停止父进程时 子进程也会停止 有没有一种优雅的方法来保持子进程运行 你可以尝试捕捉SIG
  • 向MYSQL表中插入随机数

    我试图计算表中的行数并为 随机 字段生成随机数 现在这有效 SELECT COUNT FROM my table 这有效 UPDATE my table SET random FLOOR 6500 RAND 1 但这不起作用 UPDATE
  • 如何从另一个表中获取名称与另一个表中的匹配ID?

    我在我的网站中使用 sql server 2008 r2 和 php 我有 2 张桌子 1 是针对员工的 int nvarchar nvarchar id name type 1 john 2 2 peter 1 3 leah 2 4 fr
  • 在临时表上创建游标 - 安全吗?

    我知道在 SQL 中创建和使用游标既不安全也不高效 但有时它是唯一的选择 现在这是我唯一的选择 我的问题不是如何避免使用游标 而是如果游标仅在存储过程中动态创建的临时表上运行 那么安全性如何以及会引发哪些性能问题 我知道游标的运行速度比设置
  • 在手机和平​​板电脑上使用 Android 应用程序时的兼容性问题

    在手机和平 板电脑上使用 Android 应用程序时的兼容性问题 和 图像使用某些视图的背景 然后图像被拉伸以适合屏幕尺寸 而且一些时间分辨率也会丢失 并且在更大的屏幕上无法正常工作 当我们的应用程序运行时 通常会出现兼容性问题 下载到不同
  • 如何通知我的应用程序从 SDCard (Android) 中删除了一个文件?

    我正在播放列表中保存一些歌曲 在我的应用程序数据库中 当播放列表中已存在的 SDCard 中删除某首特定歌曲时 如何反映数据库中的更改 考虑使用文件观察器 您可以监视单个文件或目录 因此 您需要做的是确定哪些目录中有歌曲并监视每个目录 否则
  • 如何将目录应用到 FOSUserBundle 的重写布局?

    as here据说我已经覆盖了layout html twig模板 FOSUserBundle 这是新模板 app Resources FOSUserBundle views extends AibFrontendBundle layout
  • 像 Subversion 中那样的 Git 关键字替换?

    我曾经在 Subversion SVN 下工作 并且立即使用了称为关键字替换的好功能 只需放入源文件 例如 Author ivanovpv Rev 42 LastChangedDate 2012 05 25 21 47 42 0200 Fr
  • 如何将工作流中的转换限制为仅在 TFS 中创建工作项的用户?

    这是更大限制的一部分 但让我困惑的部分是只能允许创建工作项的用户 System CreatedBy 字段的值 将工作项转换为 关闭 状态 我知道如何使用 For 和 Not 子句来限制转换 但这些仅限于组 我想将其限制为该工作项的特定创建者
  • 无论指定的 cellTower 是什么,Google Geolocation API 始终返回相同的位置

    我正在使用 Google Geolocation API 根据可见的手机信号塔来估算位置 但是 我总是得到与结果相同的位置 使用以下主体 considerIp false radioType lte cellTowers signalStr
  • Java:如何将字符串分割为多个字符?

    我试图在网上搜索来解决这个问题 但我没有找到任何东西 我编写了以下抽象代码来解释我的要求 String text how are you String textArray text splitByNumber 4 this method i
  • 如何重写子类中的方法?

    我编写了一个库存程序 其中包含一个数组和一个方法来计算输入的所有库存项目的总成本 我现在必须包含一个子类来覆盖原来的子类以包含 一个独特的功能 我创建了一个名为 ItemDetails 的新文件来设置原始 Item 的子类 我需要在这个子类
  • OAuth Twitter 和黑莓

    我在黑莓上有一个 j2me 项目 需要连接到 twitter 我已经完成了大部分困难的工作 我有一个 api 可以轻松引导我访问访问令牌 现在我似乎无法让身份验证与 REST 中的状态更新一起使用 我知道我的令牌是有效的 因为如果我运行验证
  • 如何更改表格视图单元格的高度

    我正在尝试读取一些 RSS 数据 我有不同大小的数据 数据存在于 Tabke 视图数据对象中 我使用标签添加数据并调整数据大小 没有成功 请帮忙 UITableViewCell tableView UITableView tableView
  • 可以制作灰度BMP文件吗?

    我正在尝试制作一个将 8 位灰度图像输出到 bmp 文件的程序 我发现8位BMP文件是有索引的 是否可以省略颜色表 只在颜色表中放入值而不是索引 或者BMP格式不允许这样 您仍然需要 LUT 但创建它非常简单 它只有 256 个条目 其中红
  • 这个递归正则表达式究竟是如何工作的?

    这是后续这个问题 看看这个模式 o 1 o It matches any sequence of o with a length of 2n with n 1 It works see regex101 com word boundarie
  • Python在内存中解压gzip数据,无需文件

    我已经从 HTTP 回复中压缩了数据 我有以下代码 def gzipDecode self content import StringIO import gzip outFilePath test compressedFile String