binascii.Error:填充不正确,即使字符串长度是 4 的倍数

2024-01-03

我正在尝试通过 python 代码将 base64 字符串转换为图像,但我得到了binascii.Error:填充不正确我已经和我的solution https://stackoverflow.com/a/9807138但他们只建议检查字符串长度是否能被 4 整除,如果不能被 4 整除,可以通过在 base64 编码的字符串末尾添加“=”字符来使其被 4 整除。 请帮忙。

Python代码: https://drive.google.com/file/d/0B0iJEAXqbN2Ickg5bEJ6Q1pZcVU/view?usp=sharing(请检查驱动器中的代码以获得更多可见性)

import base64

strOne= 'data:image/png;base64,iVBORw0KGgoAAAANSU...string has 200000 character thats why I couldn t paste'
 print 'strOne Length',len(strOne)
 print 'StrOne Length is completely divisible by 4 (len%4),(len/4):', len(strOne)%4,len(strOne)/4

 with open("imageToSave.png", "wb") as fh:
     fh.write(strOne.strip().decode('base64'))

output:

strOne Length 200000
StrOne Length is completely divisible by 4 (len%4),(len/4): 0 50000
Traceback (most recent call last):
  File "/tests.py", line 13, in <module>
    fh.write(strOne.strip().decode('base64'))
  File "/usr/lib/python2.7/encodings/base64_codec.py", line 42, in base64_decode
    output = base64.decodestring(input)
  File "/usr/lib/python2.7/base64.py", line 328, in decodestring
    return binascii.a2b_base64(s)
binascii.Error: Incorrect padding

通过检查你的链接,你的字符串有 200000 字节,but它包含标题:

strOne = b"data:image/png;base64,iVBORw0KGgoAAAANSU...

这是 MIME 消息或其他内容的一部分。你必须先把这个去掉。

strOne = strOne.partition(",")[2]

然后垫(如果需要)

pad = len(strOne)%4
strOne += b"="*pad

然后使用解码codecs(符合Python 3)

codecs.decode(strOne.strip(),'base64')

=>“我们相信团队合作”:)

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

binascii.Error:填充不正确,即使字符串长度是 4 的倍数 的相关文章

  • 将整数列表划分为总和相等的 K 个子列表

    类似的问题还有1 https stackoverflow com questions 27322804 partition of a set into k disjoint subsets with equal sum and 2 http
  • Python 中的 if len(list)

    我正在将 Python 代码转换为 C 代码 以便利用 HPC 系统上可用的并行性 最初的程序员在 Python 中使用了一个令我困惑的条件 if rnum lt gt current res alim 0 if len f alim f
  • Tensorflow GPU 设置:PyCharm 上的 CUDA 错误

    我在 Python3 MacOSX El Capitan 上安装了 TF 0 8 当为 TF 运行简单的测试代码时 我收到以下消息 ImportError dlopen Library Frameworks Python framework
  • 从 STEP 文件中提取体积

    我的目标是编写一个Python程序来提取物体的体积STEP文件 我找到了步骤实用程序 https pypi org project steputils and 奥交换 https pypi org project aocxchange 是
  • 如何在 SQLAlchemy 中连接两个表中的数据?

    我有3张桌子 Account User and Organization Account由组成id name and organization id User由组成email and organization id Organization
  • 通过 rpy2 将 numpy 数组传递给 R 时出现不一致数组

    我正在尝试将 numpy 数组传递到 R 中的 GAMLSS 包 import numpy as np import rpy2 robjects as robjects from rpy2 robjects import numpy2ri
  • 使用 Python 自动化旧的 DOS 应用程序

    有没有办法从Python 在Windows上 自动化旧的DOS应用程序 16位 可能需要模拟器 例如DOSBox 我想将密钥和字符串发送到应用程序 检测 DOS 屏幕 的更新并获取应用程序输出 如果 DOS 应用程序能够 隐藏 运行 即不显
  • 如何将 python 点列表转换为 numpy 图像数组?

    我有一个 python 点列表 x y 坐标 200 245 344 248 125 34 它表示二维平面上的轮廓 我想使用一些 numpy scipy 算法进行平滑 插值等 它们通常需要 numpy 数组作为输入 例如scipy ndim
  • 多输出回归问题的多重损失

    所以我试图训练一个 CNN 模型来预测 4 个实值输出 回归问题 我尝试使用均方误差作为损失函数 我的问题是我是否将输出层分支为 4 个不同的输出层 其中有 4 个不同的输出层由于最后一层的权重是单独更新的 loss 4 MSE 确实可以使
  • 如何在 difflibs html 输出中突出显示每行超过两个字符

    我在用difflib HtmlDiff比较两个文件 我希望在输出的 html 中突出显示差异 当一行中最多有两个不同的字符时 这已经有效 a 2 000 b 2 120 但是 当一行上有更多不同的字符时 在输出中整行将被标记为红色 在左侧
  • Python 单元测试 Google Bigquery

    我在对以下代码块进行单元测试时遇到问题 from google cloud import bigquery from google oauth2 import service account def run query query gcp
  • 修改Keras中的层权重

    我正在尝试修改 Keras 中某个层的输出 我有一个编码器 它将时间序列转换为潜在空间 之后 对于每个压缩的时间序列 我想向时间序列添加一些数字 例如我有 input d Input 100 h1 d Reshape 100 1 input
  • 如何为python虚拟环境设置特定的python版本? [复制]

    这个问题在这里已经有答案了 我是 python 的新手 我正在尝试为我的项目添加一个新环境 该环境在我当前的环境 Python 3 7 5 上运行良好 添加所有依赖项后 我遇到了 pyttsx3 包的问题 用于 python 文本到语音 进
  • 在查找表中查找字符串值以填充第二个数据帧

    我有两个数据框 main df header 1 0 value 1 1 value 2 2 value 3 3 value 1 和一个查找数据框lookup df header 1 header 2 0 value 1 lookup va
  • 覆盖 Autobahn/Twisted WebsocketClientProtocol 类

    我想重写我的 WebSocketClientFactory 类以允许传入数据填充作业队列 这是我正在尝试的连接代码 factory WebSocketClientFactory ws localhost 7096 job queue Que
  • 带约束的简单线性回归

    我开发了一种算法来循环 15 个变量并为每个变量生成一个简单的 OLS 然后算法再循环 11 次以产生相同的 15 个 OLS 回归 但 X 变量的滞后每次增加 1 我选择具有最高 r 2 的自变量 并使用 3 4 或 5 个变量的最佳滞后
  • 清除pyqt中布局中的所有小部件

    有没有办法清除 删除 布局中的所有小部件 self plot layout QtGui QGridLayout self plot layout setGeometry QtCore QRect 200 200 200 200 self r
  • Python带有负数的排序列表[重复]

    这个问题在这里已经有答案了 为了尝试通过练习来学习Python 我正在尝试使用Python来实现和测试快速排序算法 实现本身并不困难 但是排序的结果有点令人费解 当我对列表进行排序时 35 1 2 7 8 3 4 20 6 53 结果给了我
  • 在 matplotlib 中使用轴绘制带有子点的图形时出现错误

    我尝试使用下面的代码绘制子图 但是我得到了 AttributeError numpy ndarray object has no attribute boxplot 但改变plt subplots 1 2 它正在用indexerror绘制箱
  • 如何将焦点集中到 python Tkinter 文本小部件?

    我希望能够打开应用程序 GUI 并让它自动将光标放置到特定的文本小部件中 最好的情况是 应用程序启动后 有人就可以开始输入 而无需单击文本小部件 这只是显示问题的一个小示例 from Tkinter import root Tk Windo

随机推荐