sql >> Databasteknik >  >> RDS >> PostgreSQL

Inriktning på specifika värden från JSON API och infogning i Postgresql med Python

Extrahera först ids i en lista med tuplar:

ids = list((item['id'],) for item in data['issues'])
# example ids: [('41508',), ('41509',)]

Använd sedan funktionen extras.execute_values():

from psycopg2 import extras

query = """
    INSERT into Countries (revenue)
    VALUES %s;
"""
extras.execute_values(cursor, query, ids)

Det andra argumentet för funktionen executemany(query, vars_list) ska vara en sekvens medan data är ett objekt vars element inte kan nås av heltalsindex.

På grund av prestanda kör den första funktionen en enda fråga med flera argument, medan den andra kör lika många frågor som argument.

Observera att det tredje argumentet för execute_values() som standard är en lista över tupler, så vi extraherade ids bara på det här sättet.

Om du måste infoga värden i mer än en kolumn, bör varje tupel i listan innehålla alla värden för en enstaka infogade rad, till exempel:

values = list((item['id'], item['key']) for item in data['issues'])

query = """
    INSERT into Countries (id, revenue)
    VALUES %s;
"""
extras.execute_values(cur, query, values)


  1. Problem med teckenkodning med linux och mysql

  2. Hur WooCommerce-kuponger lagras i databasen?

  3. Oracle snabbare överlappningskontroll

  4. T-SQL-buggar, fallgropar och bästa praxis – går med