NOVINKA - Online rekvalifikační kurz Python programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: zpracování tagů v Pythonu

Aktivity
Avatar
Pavlínka
Člen
Avatar
Pavlínka:23.2.2022 17:16

na twitchi existuje napojení na IRC chat kde v tvrdých datech vyjdou k každému příspěvku dostanu řadu tagů:

@badge-info=subscriber/48;badges=broadcaster/1,subscriber/24;client-nonce=e43024be91dcc9b9c5f02907b1;color=#FF0000;display-name=Brambora;emotes=;first-msg=0;flags=;id=27562ad5-d4d9-48ec-8381-d3e6;mod=0;room-id=160237115;subscriber=1;tmi-sent-ts=1645317642434;turbo=0;user-id=160237115;user-type=

Zkusil jsem: zajímalo by mě jak nejlefektivněji dosáhnout získání

promena[user-id] #160237115

Chci docílit: pokud použiju například split, mohu rozdělit funkce "nepěkně", existuje něco efektivnějšího než samotný split? děkuji za info

 
Odpovědět
23.2.2022 17:16
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:24.2.2022 7:57

Zalezi na tom, jakym vzorcem pocitas efektivitu.

Split dela to, ze vytvari pole a do nej souka stringy podle rozdelovace (treba strednik). Tohle reseni vyzaduje pamet navic. Vyuziva prelozeny c-kod pro split, takze je pomerne rychle proti cyklu, ktery by sis napsala.

Nebo muzes zkusit vyhledat v retezci pozici, str.index() https://www.programiz.com/…string/index
A pak to substringnout string[start:end:step] https://www.freecodecamp.org/…g-in-python/

Ale, v obou pripadech muze, ale nemusi nastat problem.
Existuje neco jako format CSV, ktery se da vyrobit treba v excelu jako export, kde oddelovac sloupcu pouziva prave strednik. Tento format ma jista pravidla pro pripad, ze se ve value vyskytuje take strednik. V takovem pripade se tusim zdvojuje a kome value se pridavaji uvozovky. Uplne stejne to plati pro znak noveho radku "\n", ktery slouzi jako oddelovat radku. V takovem pripade by pouziti split melo fatalni nasledky. A podobne by mohl dopadnout i index+substring.

color=#FF0000;display-name=Brambora;emotes=; // zmenim si value = Brambora na value = Bra;mb;ora
color=#FF0000;display-name=Bra;mb;ora;emotes=; // a takhle ho zapsat v csv nemuzu
color=#FF0000;display-name="Bra;;mb;;ora";emotes=; // a myslim, ze se to zapisuje takto
color=#FF0000;display-name="Bra;mb;ora";emotes=; // NEBO takto
// a pak splitem ziskas display-name="Bra;
// a vsechny dalsi hodnoty ziskane cislem sloupce za timto jsou pak uplne naprd
;; - melo byt emotes
ora"; - melo byt first-msg

Takze, pokud se muzes spolehnout na ten format, a nepotrebujes dalsi hodnoty, tak by mohl byt lepsi index+substring

Editováno 24.2.2022 7:58
 
Nahoru Odpovědět
24.2.2022 7:57
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.