2017-09-11 3 views
1

Ich habe ein Problem, einen geometry Wert in eine PostgreSQL/PostGIS Datenbank einzufügen. Ich verwende psycopg2 Paket. Ich mag geografische Breite und Länge speichern, dass ich geopy Bibliothek bekommen verwenden, mit dem nächsten Code:Geometriewert in PostgreSQL + PostGIS

geolocator = Nominatim() 
location = geolocator.geocode(name) 

Ich bin sehr verwirrt, was SQL Satz, den ich zu schreiben habe. Ich versuche

sql = """INSERT INTO Sensor(name, value, location, unit, frecuencyUpdate) 
       VALUES(%s, %s, ST_MakePoint(%s, %s),%s, %s) 
       RETURNING id;""" 

cur = conn.cursor() 
cur.execute(sql, (sensor.estacion, sensor.waterState, sensor.getLongitude(), sensor.getLatitude(), sensor.unit, sensor.frecuencyUpdate)) 

Und ich bekomme die Fehlermeldung:

"doesn't exits relation «sensor»"

Kann mir jemand helfen?

Antwort

1

Ihre SQL verfügt über ein Kapital S für den Tabellennamen, aber es wird nicht angegeben, so Postgres für eine Tabelle mit Kleinbuchstaben suchen. Sollten Sie die Tabelle erstellt haben, den Großbuchstaben verwenden, müssen Sie es zitieren:

sql = """INSERT INTO \"Sensor\"(name, value, location, unit, frecuencyUpdate) 
       VALUES(%s, %s, ST_MakePoint(%s, %s),%s, %s) 
       RETURNING id;""" 
+0

Great !!! Danke vielmals!!!! Auch frecuencyUpdate brauchen \ ". Du hast meinen Tag gerettet! – jjmartinez

Verwandte Themen