too many values to unpack mit Oracle

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
bcit6k
User
Beiträge: 77
Registriert: Mittwoch 23. Juli 2008, 08:50

too many values to unpack mit Oracle

Beitragvon bcit6k » Mittwoch 30. Juli 2008, 15:32

Hallo,

ich lese aus einer Oracle DB Werte aus ,genau 8.

mein sql string sieht wie folgt aus:

Code: Alles auswählen

sql_check = "SELECT country,country_code,region,region_code,city,zip AS zipc,lat,lon FROM TABELLE WHERE IP = '%s' AND LAT IS NOT NULL AND LON IS NOT NULL" % (IP)

 curs2.execute(str(sql_check))
  check = curs2.fetchone()


danach greif ich mit einer for darauf zu



Code: Alles auswählen

for country,country_code,region,region_code,city,zipc,lat,lon in check:
      COUNTRY = country
      COUNTRY_CODE = country_code
      REGION = region
      REGION_CODE = region_code
      CITY = city
      ZIP = zipc
      LAT = lat
      LON = lon


ich bekomme aber immer die Fehlermeldung


Code: Alles auswählen

ValueError: too many values to unpack


check gibt genau 8 Werte zurück

Code: Alles auswählen

('Switzerland', 'CH', None, 'None', 'None', 'None', 47.0, 8.0)


nun bin ich mir nicht sicher ob das daran liegt das bei einigen Werten keine ' ' sind. Ob das dann eine art Typemismatch ist oder so?

HILFE Bitte werde nicht schlau aus dem ganzen

Danke
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Beitragvon Rebecca » Mittwoch 30. Juli 2008, 16:12

Damit deine for-Schleife funktioniert, muesste check aber zB. so aussehen,

Code: Alles auswählen

(('Switzerland', 'CH', None, 'None', 'None', 'None', 47.0, 8.0),
 ('Switzerland', 'CH', None, 'None', 'None', 'None', 47.0, 8.0),
 ('Switzerland', 'CH', None, 'None', 'None', 'None', 47.0, 8.0))

also ein Tupel von Tupeln sein.

Wenn du einfach nur das eine Tupel Variablen zuweisen willst, geht das so:

Code: Alles auswählen

country,country_code,region,region_code,city,zipc,lat,lon = check
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
bcit6k
User
Beiträge: 77
Registriert: Mittwoch 23. Juli 2008, 08:50

Beitragvon bcit6k » Donnerstag 31. Juli 2008, 05:23

aso, das erklärt nun einiges! Danke das werd ich gleich mal testen :)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder