Abfrage SQL db

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
Joerg86
User
Beiträge: 2
Registriert: Samstag 24. August 2019, 14:08

Hallo, ich habe eine frage bzgl. meiner DB Abfrage.
cursor = connection.cursor()
cursor.execute("SELECT links FROM phpdb.linkliste")
result = cursor.fetchall()
for x in result:
print (x)
y= x[5:]
print (y)
Ausgabe schaut wie folgt aus:
connect successful!!
{u'links': 'http://www.boerse-online.de'}
Traceback (most recent call last):
File "scrapper.py", line 18, in <module>
y= x[5:]
Warum kommt
u'links':
und nicht nur der Datenbank Eintrag?
Ich check das nicht. Und finde hierzu nichts gescheites, evtl. weil ich auch net weis was ich suchen muss.

Danke schonmal für Hilfe.

MFG Jörg
Joerg86
User
Beiträge: 2
Registriert: Samstag 24. August 2019, 14:08

Ist ein Dictionary, hab es schon gelöst.
Abfrage:
for x in result:
y= x['links']
funktioniert.
:-)
Benutzeravatar
__blackjack__
User
Beiträge: 13079
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Da muss dann aber vorher im Code irgendetwas passieren was dafür sorgt, dass keine Sequenzen wie Tupel sondern Wörterbücher zurückgegeben werden.

`x` und `y` sind keine guten Namen wenn es sich nicht um Koordinaten handelt. Und beim Modulnamen `scrapper` möchtest Du vielleicht mal den Unterschied zwischen „scrapper“ und „scraper“ nachschlagen. 😉

Da bei Python die Einrückung wichtig ist, Quelltext bitte in Code-Tags setzen. Also entweder [ code ] … [ /code ] (ohne die Leerzeichen in den Klammern) manuell schreiben, oder im vollständigen Editor die Schaltfläche mit der </>-Beschriftung nutzen.

Code: Alles auswählen

    cursor.execute("SELECT links FROM phpdb.linkliste")
    for row in cursor.fetchall():
        link = row["links"]
        print(link)
Und die gesamte Fehlermeldung wäre nett. Oft steht da etwas wichtiges drin.

Das die Spalte „links“ heisst ist auch etwas komisch, denn sie enthält ja nur *einen* Link (was auch gut so ist). Der Tabellenname „linkliste“ ist da auch nicht so ganz passend. So eine Tabellenbeschreibung in SQL definiert ja *einen* Datensatz. Sowohl im ER-Diagramm als auch bei ORMs sieht das dann komisch aus wenn Tabellennamen in der Mehrzahl benannt sind.

Last but not least: Kein Python 2 mehr benutzen, das ist in weniger als vier Monaten mausetot, mit einer echt laaaangen Vorwarnfrist: https://pythonclock.org/
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Antworten