@NewEpisode: nie wiem czy dobrze zrozumiałem, ale nie konwertuj/serializuj wynikowego obiektu na string, ale po prostu wyciągnij z wyniku dekodowania wartość pola data wynikowego obiektu poprzez:
wynik_dekodowania = decode(...) dane = wynik_dekodowania.data (Nie znam zbar)
Jeżeli to jest to, to w takim razie idea obiektów/OOP u ciebie leży oraz musisz doczytać czym jest metoda __str__ oraz __repr__ w Pythonie.
@patrolez: Obiekt wynikowy leci od razu do listy. W sumie udało się to ogarnąć przez lista.append(dane[0][0])), z tym że pojawia się litera "b" na początku ( ͡°͜ʖ͡°)
wynik_dekodowania = str(zbar_decode(...)) nie rób:
wynik_dekodowania = repr(zbar_decode(...)) nie rób:
wynik_dekodowania = "" + zbar_decode(...) nie rób:
wynik_dekodowania = "{}".format(zbar_decode(...)) Tylko wynikiem wywołania zbar_decode(...) jest pełnoprawny obiekt, który ma pola (zmienne) i możesz wyciągnąć z tych pól dane.
Kolejna rzecz, to masz tam byte-stringa jako typ wynik_dekodowania.data i aby to przekształcić w tekst, to musisz zaaplikować kodowanie tekstu - QrCode ma chyba UTF-8 chyba z domysłu:
Decoded(data=b'PSC:00000074', type='QRCODE', rect=Rect(left=60, top=63, width=120, height=120), polygon=[Point(x=60, y=73), Point(x=70, y=183), Point(x=180, y=173), Point(x=169, y=63)
a chciałbym samo "PSC:00000074". Istnieje jakiś sensowny sposób niż oddzielanie po apostrofach i wybieranie [0]?
datawynikowego obiektu poprzez:wynik_dekodowania = decode(...)dane = wynik_dekodowania.data(Nie znam
zbar)Jeżeli to jest to, to w takim razie idea obiektów/OOP u ciebie leży oraz musisz doczytać czym jest metoda
__str__oraz__repr__w Pythonie.Nie rób:
wynik_dekodowania = str(zbar_decode(...))nie rób:
wynik_dekodowania = repr(zbar_decode(...))nie rób:
wynik_dekodowania = "" + zbar_decode(...)nie rób:
wynik_dekodowania = "{}".format(zbar_decode(...))Tylko wynikiem wywołania
zbar_decode(...)jest pełnoprawny obiekt, który ma pola (zmienne) i możesz wyciągnąć z tych pól dane.Kolejna rzecz, to masz tam byte-stringa jako typ
wynik_dekodowania.datai aby to przekształcić w tekst, to musisz zaaplikować kodowanie tekstu - QrCode ma chyba UTF-8 chyba z domysłu:Decodedw jednej linii, to:wynikowe_stringi = [x.data.decode('utf-8') for x in lista_obiektow_Decoded][Decoded(data=b'PSC:0000001A', type='QRCODE', rect=Rect(left=12633, top=12161, width=529, height=750), polygon=[Point(x=12633, y=12911), Point(x=13159, y=12905), Point(x=13162, y=12161), Point(x=12636, y=12161)]), Decoded(data=b'PSC:00000028', type='QRCODE', rect=Rect(left=12201, top=14187, width=527, height=754), polygon=[Point(x=12201, y=14201), Point(x=12205, y=14941), Point(x=12728, y=14931), Point(x=12722, y=14187)]), Decoded(data=b'PSC:00000021', type='QRCODE', rect=Rect(left=12212, top=13182, width=527, height=763), polygon=[Point(x=12212, y=13945), Point(x=12739, y=13917), Point(x=12738, y=13182), Point(x=12214, y=13182)]), Decoded(data=b'PSC:0000003L', type='QRCODE', rect=Rect(left=11815, top=11331,zmienna
ato lista obiektów typuDecodedCzyli:
wynikowe_stringi = [x.data.decode('utf-8') for x in a][print(x) for x in wynikowe_stringi]Zamiast całego bloku
if a:, a uzyskasz co potrzebujesz.@patrolez: Cóż, działa :D Dzięki za odpowiedź, muszę tylko przeanalizować na spokojnie tą linijkę bo nie do końca ogarniam do końca co ona robi