sql >> Databáze >  >> RDS >> PostgreSQL

PostgreSQL TypeError:ne všechny argumenty byly převedeny během formátování řetězce

Za lines[0] musí být čárka aby to byla n-tice.

curr.execute("""
    SELECT fields.fieldkey
    FROM fields
    LEFT JOIN zone ON zone.fieldkey=fields.fieldkey
    WHERE zone.zonekey = %s;
""", (lines[0],))

Protože execute metoda očekává sekvenci (nebo mapování) iteruje přes vámi zadaný řetězec obklopený závorkami. Je tedy potřeba z toho vyloženě udělat tuple. Stejného výsledku, s přehlednějším kódem, lze dosáhnout pomocí tuple funkce :

(tuple(lines[0]))



  1. Systém resetování hesla v PHP

  2. Jak se připojit k MySQL běžící na Dockeru z hostitelského počítače

  3. Chyba syntaxe PHP PDO nebo porušení přístupu:1064 při vložení

  4. MySQL získá počet záznamů po hodinách, dokonce i hodiny bez záznamů