Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

402
Views
Inserte una sola variable en una tabla en PostgreSQL usando python

Estoy tratando de insertar un solo valor en una tabla de Postgres con dos columnas. La primera columna es una clave principal de aumento automático, mientras que la segunda columna debe ser una variable. Investigué un poco y encontré los siguientes recursos TypeError: no todos los argumentos se convirtieron durante el formato de cadena python , ¿Cómo configurar la clave principal de incremento automático en PostgreSQL? este formato de cadena Psycopg2 con nombres de variables para la creación de tipos .

 import psycopg2 try: conn = psycopg2.connect("dbname=postgres user=postgres password=actuarial") print("database created successfully.") except psycopg2.OperationalError as ex: print("Connection failed: {0}".format(ex)) cur = conn.cursor() def create_client_table(): cur.execute("CREATE TABLE ClientTable (ClientID SERIAL PRIMARY KEY, Name varchar);") print('student table created successfully') create_client_table() def client_add(): name = input("Enter the names of the student:") cur.execute("INSERT INTO CleintTable VALUES (%s)", (name)); cur.execute("SELECT * FROM StudentTable") rows = cur.fetchall() print(rows) client_add() conn.close()

Al ejecutar el código anterior, aparece el siguiente error. Amablemente ayúdame a identificar dónde me estoy equivocando.

 cur.execute("INSERT INTO CleintTable VALUES (%s)", (name)); TypeError: not all arguments converted during string formatting
over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Se necesita una coma después del name para convertir esa expresión entre paréntesis en una tupla:

 cur.execute("INSERT INTO CleintTable VALUES (%s)", (name,));

De lo contrario, es una secuencia de cadenas sobre la cual execute el método de ejecución.

over 4 years ago · Santiago Trujillo Report

0

Es posible que se deba cambiar "CleintTable" a ClientTable, a menos que intencionalmente haya nombrado la tabla de esta manera. Solo algo que noté al leer tu código, aparte de lo que estabas buscando.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!