ich eine Abfrage mit diesem Code auf Basis von Benutzereingaben in der Flasche am Aufbau So geworfen nicht unterstützt:Typeerror: ‚dict‘ Objekt Indizierung auf der zweiten Instanz dieser Abfrage
if empty_indic_form.validate_on_submit():
query='select name, year, value, display_name from literal inner join ent on ent_id=ent.id where display_name in ('
for i in indic_form.indicators.data:
query=query+'\''+i+'\','
query=query[:-1]+') '
query=query+'and name in ('
for c in order_c:
query=query+c+','
query=query[:-1]+')'
data_return=db.engine.execute(query).fetchall()
Ich habe bestätigt, dass Abfrage aussieht was es soll, und hatte sogar eine frühere Sitzung, wo es eine Liste von rowproxy-Objekten zurückgab, wie ich es erwartet hatte. Aber ich bekomme diesen Fehler nicht, egal was ich mache!
ich Abfrage auf eine Variable in den Vorlagen festgelegt haben, damit ich es ausdrucken können, und hier ist das, was ich bekommen:
select name, year, value, display_name from literal inner join ent on ent_id=ent.id where display_name in ('Energy savings of primary energy (TJ)','Adolescent birth rate (women aged 15-19 years)','Net migration rate','Transmission and distribution losses (%)') and name in ('Burkina Faso', 'Ghana', 'Saudi Arabia', 'Pakistan')
lief ich, dass direkt auf meine Postgres DB und das Ergebnis war großartig.
In der Fehler-Dump merke ich, dass die data_return=db.engine.execute(query).fetchall()
Zeile mit einem leeren Wörterbuch als die Parameter erstellt, die natürlich diesen Fehler am Ende wirft. Kann ich es zwingen, dies nicht zu tun? Das Abfrageobjekt sieht wie oben aus, was ist jetzt falsch? Sollte ich die db-Sitzung möglicherweise beim Aktualisieren der Seite oder auf der Startseite beenden?
am db.engine.execute Stack-Trace Linie Dumping ich '' "query = \t u'select Name, Jahr, den Wert, display_name von wörtlicher Exklusionsverknüpfung ent auf ent_id = ent.id wo display_name in ("Altersabhängigkeitsquote, 65 Jahre und älter", "Waldfläche (% der gesamten Landfläche)", "Energieintensität des Verkehrssektors (MJ/2011 USD PPP)", "Divisia Zerlegungsanalyse - Energieintensitätskomponentenindex" "," HDI: Durchschnittliche jährliche Wachstumsrate, 2000-2013 "," GDI: Erwartete Schuljahre, Männer ") und in (" Saudi-Arabien "," Pakistan "," Finnland "," Jamaika ")" "genannt so Ill versuchen, von Unicode zu str zu zwingen? –
Nicht wirklich vertraut, aber für psycopg2 verwendet die normale Abfrage dreifach zitierte Literale. Hast du das probiert? – Wboy
Wo die vollständige Traceback-Nachricht? –