You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从pyzbar解码返回的数组中提取data字段值‘812’

提取pyzbar解码结果中的data值

嘿,我来帮你搞定这个问题!首先咱们先理清楚你得到的barcode是什么:它是一个包含Decoded对象的列表,从你打印的结果外面包裹的[]就能看出来,所以它属于列表类型。

你之前尝试的print(barcode[Decoded(data)])写法不对,因为列表的索引得是整数(比如0、1这种),而且Decoded是类,不是具体的对象属性,所以这么写肯定会报错。

正确的提取步骤很简单:

  1. 从列表中取出对应的Decoded对象(因为你只有一个QR码,所以取索引0的元素就行)
  2. 访问这个对象的.data属性——注意它返回的是bytes类型,如果你需要字符串的话,记得用.decode('utf-8')转成字符串

直接给你看可用的代码:

from pyzbar.pyzbar import decode
from PIL import Image

barcode = decode(Image.open('qr111.png'))
# 取列表中的第一个Decoded对象
decoded_item = barcode[0]
# 提取data并转成字符串
qr_data = decoded_item.data.decode('utf-8')
print(qr_data)  # 输出:812

如果你的图片里有多个QR码,那barcode列表里会有多个Decoded对象,你可以用循环来遍历提取每个的data:

for item in barcode:
    print(item.data.decode('utf-8'))

内容的提问来源于stack exchange,提问作者Julliard

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:45:29