#python #list
#python #Список
Вопрос:
from pyzbar.pyzbar import ZBarSymbol
# Look for just qrcode
decode(Image.open('pyzbar/tests/qrcode.png'), symbols=[ZBarSymbol.QRCODE])
[
Decoded(
data=b'Thalassiodracon', type='QRCODE',
rect=Rect(left=27, top=27, width=145, height=145),
polygon=[
Point(x=27, y=27), Point(x=27, y=172), Point(x=172, y=172),
Point(x=172, y=27)
]
)
]
Мне нужно только поле данных из функции decode.
Я новичок в python и программировании в целом, поэтому не могу понять, как это сделать.
info=decode(img, symbols=[ZBarSymbol.QRCODE])
print(info)
При этом отображается весь список.
Комментарии:
1.убедитесь, что
None
всегда используетсяis
оператор илиis not
operator , а не==
оператор. я знаю, что это не относится к делу. что касается ускорения кода, возможно, вы мало что сможете сделать, если не изучите параметры библиотеки zbar. обратитесь к его документации. вероятно, вы можете ограничиться только QR-кодами, без других типов. вы можете проверить, выполняется ли декодирование QR-кода OpenCV быстрее2. Я приношу извинения за полное изменение темы, я понял, что приведенный выше подход позволяет работать немного быстрее.
3. Вы пробовали
decode(img, symbols=[ZBarSymbol.QRCODE])['data']
?4. (Ошибка типа: индексы списка должны быть целыми или фрагментами, а не str) получил эту ошибку.
5. @accdias, я приношу извинения за форматирование
Ответ №1:
decode
возвращает список Decoded
объектов.
Если вас интересует только первый объект, тогда info[0].data
это сработает.
Комментарии:
1. как бы то ни было, результатом является ‘Thalassiodracon’ . мне нужен только необработанный текст без ». желаемый результат — Thalassiodracon
2. @HamzaShah
b"Thalassiodracon".decode()