Anfängerfrage zu re.compile
@sveni_lee: Ich meine Unterschiede zwischen den Einträgen die erfasst werden und denen die nicht erfasst werden. Das Programm stoppt *nicht* wegen den fehlenden Einträgen für Episode, Staffel, und Episodentitel.
@sveni_lee: Ja aber *warum* nicht? Worin unterscheiden die sich von denen die ausgelesen werden? Und ich kann das auch nicht nachvollziehen, bei mir wird bis zum letzten <li>-Eintrag alles erfasst.
der Unterschied ist,
'episode': parse_number(node.find('span', 'epg_ep')),
'episode_title': episode_title_node.text if episode_title_node else None,
'season': parse_number(node.find('span', 'epg_st')),
nicht vorhanden sind und mit None ausgegeben werden....
'episode': parse_number(node.find('span', 'epg_ep')),
'episode_title': episode_title_node.text if episode_title_node else None,
'season': parse_number(node.find('span', 'epg_st')),
nicht vorhanden sind und mit None ausgegeben werden....
Code: Alles auswählen
<li id="e_121" style="display:none;" style="display:none;"><table><colgroup><col width="65"><col width="12"><col width="475"><col width="70"></colgroup>
<tr><td rowspan="3" class="zeit">16.55 Uhr</td><td colspan="2" class="entry"><a href="/serie/funnymals" class="sendung b2">Funnymals</a><a href="http://www.wunschliste.de/kalender.pl?s=24884&ktermin_start=20160315T165500&ktermin_ende=20160315T173000&kid=201603151655014&sz=0&sender=&titel=" class="episode_kalender"><img src="/gfx/kal.gif" width="10" height="9" border="0" title="Zum Kalender hinzufügen" class="kalsprite"></a></td><td rowspan="2" style="background-color:#ffffff;"><img src="/gfx/logos/14.gif" class="stationslogo" alt="SRF 1 (Schweiz)" title="SRF 1 (Schweiz)"><img src="/gfx/flaggen/flagge_ch.png" alt="Schweiz" title="Schweiz" class="linkflag"></td></tr>
<tr><td rowspan="2"></td><td>FUNNYMALS</a></td></tr>
@sveni_lee: Noch mal: Interessant ist der Unterschied zwischen Daten die erfasst werden und welchen die nicht erfasst werden. Wobei das mit den Episodendaten kein wichtiger Unterschied ist, denn es werden ja ganz offensichtlich Datensätze mit und ohne Episodeninformationen gefunden, das kann also nicht der Unterschied sein der dazu führt das bei Dir nicht alles gefunden wird. Wenn die Episodendaten nicht vorhanden sind, dann wird halt `None` als Wert eingetragen von der Funktion. Das bewirkt in keinster Weise das danach nicht weitergesucht wird. Warum sollte es auch‽
Also Ich kann beim besten willen keinen unterschied feststellen außer den von mir genannten....
Ich habe noch einmal eine andere Frage...
und Zwar werden einige Sendernamen wie folgt angegeben...
AXN (Pay-TV)
Channel :ATV (Österreich)
damit ich die Kanäle mit meiner Datenbank abgleichen kann müssen die zusätze (Pay-TV) oder (Österreich) entfernt werden...
das ist eigendlich kein problem
bei Österreich klappt das nicht, da kommt eine Fehlermeldung:
bringen keine Abhilfe
Ich habe noch einmal eine andere Frage...
und Zwar werden einige Sendernamen wie folgt angegeben...
AXN (Pay-TV)
Channel :ATV (Österreich)
damit ich die Kanäle mit meiner Datenbank abgleichen kann müssen die zusätze (Pay-TV) oder (Österreich) entfernt werden...
das ist eigendlich kein problem
Code: Alles auswählen
channel = re.compile('"stationslogo" alt="(.+?)"', re.DOTALL).findall(entry)[0]
channel = channel_raw.replace(' (Pay-TV)','').strip()
Das sliegt ja daran, dass das "Channel" ascii kodiert ist aber meine versuche mitSyntaxError: Non-ASCII character '\xc3' in file G:\Test1.py on line 67, but no encoding declared;
Code: Alles auswählen
channel = channel.encode('utf-8')
@sveni_lee: Es muss ja irgendeinen Grund geben. Aber solange Du das Problem nicht nachvollziehbar zeigen kannst, kann man da halt nicht viel zu sagen.
Jetzt fängst Du ja schon wieder mit regulären Ausdrücken an…
Die Fehlermeldung bezieht sich auf Deinen Quelltext und hat nichts mit den Daten zu tun. Ausserdem ist das nicht die ganze Fehlermeldung. Lies die mal komplett und folge dem Link.
Jetzt fängst Du ja schon wieder mit regulären Ausdrücken an…
Die Fehlermeldung bezieht sich auf Deinen Quelltext und hat nichts mit den Daten zu tun. Ausserdem ist das nicht die ganze Fehlermeldung. Lies die mal komplett und folge dem Link.
ja, ich weiß... ist nicht schön bringt mir aber grad das bessere Ergebnis, da ich den "Fehler" nicht finden kann...
dem link bin gefolgt aber werde nicht wirklich schlau daraus...
da ja nicht unterstützt wird
und ein *.encode('utf-8') auch nicht funktioniert
dem link bin gefolgt aber werde nicht wirklich schlau daraus...
da
Code: Alles auswählen
# -*- coding: utf-8 -*-
und ein *.encode('utf-8') auch nicht funktioniert
- pillmuncher
- User
- Beiträge: 1484
- Registriert: Samstag 21. März 2009, 22:59
- Wohnort: Pfaffenwinkel
@sveni_lee: # -*- config: utf-8 funktioniert dann und nur dann, wenn die Datei, in der das steht, auch wirklich utf-8 kodiert ist. Dazu musst du deinen Editor entsprechend konfigurieren. Eine Datei, die, sagen wir in cp850 kodiert ist, wird nicht magisch zu einer in utf-8 kodierten Datei, bloß weil man das da reinschreibt.
In specifications, Murphy's Law supersedes Ohm's.
@pillmuncher:
also Ich nutze SubLime Text 3
in meiner python.sublime-build steht folgendes:
und wenn in der Konsole kommt folgendes
also nicht uft-8
Nur wie kann ich das umstellen?
in sublime sollte es so gehen
reicht das schon?
also Ich nutze SubLime Text 3
in meiner python.sublime-build steht folgendes:
Code: Alles auswählen
{
"cmd": ["g:\\Python\\python.exe", "-u", "$file"],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python"
}
Code: Alles auswählen
c:\>chcp
Active Codepage: 850
Nur wie kann ich das umstellen?
in sublime sollte es so gehen
Code: Alles auswählen
{
"cmd": ["g:\\Python\\python.exe", "-u", "$file"],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python"
"encoding": "uft-8"
}
- pillmuncher
- User
- Beiträge: 1484
- Registriert: Samstag 21. März 2009, 22:59
- Wohnort: Pfaffenwinkel
Mit SublimeText kenne ich mich nicht aus, aber wenn, dann muss es utf-8 heißen, nicht uft-8.sveni_lee hat geschrieben:reicht das schon?Code: Alles auswählen
{ "cmd": ["g:\\Python\\python.exe", "-u", "$file"], "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)", "selector": "source.python" "encoding": "uft-8" }
Außerdem: selbst, wenn du die Datein dann mit SublimeText öffnest, ist sie immer noch in cp850 kodiert. Du musst vermutlich eine neue - leere - Datei erstellen, den Inhald der ursprünglichen Datei kopieren, in die neue Datei einfügen und unter dem richtigen Namen speichern. Am besten machst du auch ein Backup der alten Datei.
In specifications, Murphy's Law supersedes Ohm's.
@sveni_lee: Das hat nichts mit den Sublime-Einstellungen zu tun die Du da zeigst. Die Kodierung die in dem Kommentar angegeben wird, muss halt mit der Kodierung übereinstimmen in der die Datei abgespeichert wird. Das wiederum hat nichts mit der Kodierung zu tun die in einer Konsole verwendet wird. Du musst halt mal schauen wo Dir der Editor anzeigt welche Kodierung er für die Datei verwendet.
Edit: http://stackoverflow.com/a/20657899/3815611
Edit: http://stackoverflow.com/a/20657899/3815611
@sveni_lee: Was hat nicht funktioniert? Es richtig zu machen? Doch, wenn man es richtig macht, dann funktioniert es auch.
@BlackJack: sorry, Ich hatte deine Antwort und den Link nicht gesehen... Danke dafür.
In der Status zeile wird jetzt auch UTF-8 angezeigt. aber der Fehler bleibt.
folgendes:
ohne
mit
In der Status zeile wird jetzt auch UTF-8 angezeigt. aber der Fehler bleibt.
folgendes:
ohne
Code: Alles auswählen
# -*- coding: utf-8 -*-
Code: Alles auswählen
SyntaxError: Non-ASCII character '\xc3' in file G:\Test1.py on line 68, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
Code: Alles auswählen
# -*- coding: utf-8 -*-
Code: Alles auswählen
Traceback (most recent call last):
File "G:\Test1.py", line 111, in <module>
get_SerienSendetermine()
File "G:\Test1.py", line 68, in get_SerienSendetermine
channel = channel.replace(' (Östrreich)','').strip()
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 2: ordinal not in range(128)
@sveni_lee: Das eine hat nichts mit dem anderen zu tun. Beim `SyntaxError` konnte der Compiler nichts mit dem Ö anfangen. Beim zweiten Fehler mischst Du Bytestrings und Unicode, was dazu führt das Python versucht implizit den Bytestring als ASCII zu dekodieren. Der ist aber kein ASCII, darum geht das nicht. Verwende ein Unicode-Zeichenliteral, also ein u vor der Zeichenkette: u' (Östrreich)'
hier hat nicht zufällig jemand Ahnung von JSON RPC abfragen?
Ich versuche grad den Namen zu der imdbnumber aus meiner Kodi-Datenbank aufzulösen.
bekomme aber immer nur 0 angezeigt... Also denke ich das da noch irgendwo ein Fehler sein muss...
Ich versuche grad den Namen zu der imdbnumber aus meiner Kodi-Datenbank aufzulösen.
bekomme aber immer nur 0 angezeigt... Also denke ich das da noch irgendwo ein Fehler sein muss...
Code: Alles auswählen
def TVShowName2TVShowID(tvshowname):
query = {
"jsonrpc": "2.0",
"method": "VideoLibrary.GetTVShowDetails",
"params": {"limits": {"start": 0, "end": 200}},
"id": 1
}
res = json.loads(xbmc.executeJSONRPC(json.dumps(query, encoding='utf-8')))
if 'result' in res and 'tvshow' in res['result']:
res = res['result'].get('tvshow')
for tvshow in res:
if tvshowname.lower () in tvshow['sorttitle'].lower():
debug("SerienPlaner found imdb-ID %s" % (tvshow['sorttitle']))
return tvshow['imdbnumber']
return 0
- miracle173
- User
- Beiträge: 127
- Registriert: Samstag 6. Februar 2016, 00:28
Das ist jetz eigentlich wieder eine eigenständige Frage und gehört nicht mehr zu 'Anfängerfrage zu re.compile'sveni_lee hat geschrieben:hier hat nicht zufällig jemand Ahnung von JSON RPC abfragen?
(...)
mfg miracle173
https://github.com/python-forum-de/Jump-N-Run-pydesw
https://github.com/python-forum-de/Jump-N-Run-pydesw