PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

TypeError:obiekt „int” nie obsługuje indeksowania

cursor.execute('
    SELECT "Indicator"."indicator" 
    FROM "Indicator" 
    WHERE "Indicator"."some_id" =   %s;', [some_id])

To zmienia some_id parametr na listę, którą można indeksować. Zakładając, że twoja metoda działa tak, jak myślę, to powinno działać.

Błąd występuje, ponieważ gdzieś w tej metodzie prawdopodobnie próbuje iterować dane wejściowe lub bezpośrednio je indeksować. Prawdopodobnie tak:some_id[0]

Tworząc listę (lub iterowalną), pozwalasz mu indeksować pierwszy element w ten sposób.

Możesz również zrobić z niego krotkę, wykonując to:(some_id,) co ma tę zaletę, że jest niezmienne.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak Atanh() działa w PostgreSQL

  2. Postgres Error:Więcej niż jeden wiersz zwrócony przez podzapytanie użyte jako wyrażenie

  3. Zamiast LIKE i ~, dlaczego tylko SIMILAR TO działa podczas dopasowywania wyrażeń regularnych z alternatywami

  4. Lumen - Utwórz połączenie z bazą danych w czasie wykonywania

  5. Jak wygenerować unikalny ciąg na rekord w tabeli w Postgresie?