首页 > 解决方案 > 使用python的二维码解码得到太多的值来解包错误

问题描述

我正在使用 python 生成一个二维码图像。

我的代码:

import qrcode
data = 'Authenticated'

img = qrcode.make(data)

img.save('trademark.jpg')

之后,我想从我自己生成的二维码中获取信息。对于上面的代码,它会给出像 Authenticated 名称这样的输出和其他信息,比如 QRcode 的高度等。

我获取二维码数据的代码:

from pyzbar.pyzbar import decode
from PIL import Image

decode_image = ("trademark.jpg")

result = decode(decode_image)

我收到上述代码片段的错误

ValueError                                Traceback (most recent call last)
<ipython-input-10-dbd95bfa64b9> in <module>()
      4 decode_image = ("trademark.jpg")
      5 
----> 6 result = decode(decode_image)

1 frames
/usr/local/lib/python3.7/dist-packages/pyzbar/pyzbar.py in _pixel_data(image)
    145     else:
    146         # image should be a tuple (pixels, width, height)
--> 147         pixels, width, height = image
    148 
    149         # Check dimensions

ValueError: too many values to unpack (expected 3)

如何调试代码?

标签: pythondecodeqr-code

解决方案


我建议使用 PIL 打开图像,也就是说,pyzbar 它的设计目的是

from pyzbar.pyzbar import decode
from PIL import Image

img = Image.open("trademark.jpg")
result = decode(img)

推荐阅读