PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Segmentação de valores específicos da API JSON e inserção no Postgresql, usando Python


Primeiro, extraia ids em uma lista de tuplas:
ids = list((item['id'],) for item in data['issues'])
# example ids: [('41508',), ('41509',)]

Em seguida, use a função extras.execute_values():
from psycopg2 import extras

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

O segundo argumento da função executemany(query, vars_list) deve ser uma sequência enquanto data é um objeto cujos elementos não podem ser acessados ​​por índices inteiros.

Por causa do desempenho, a primeira função executa uma única consulta com vários argumentos, enquanto a segunda executa tantas consultas quanto argumentos.

Observe que, por padrão, o terceiro argumento de execute_values() é uma lista de tuplas, então extraímos ids apenas desta forma.

Se você precisar inserir valores em mais de uma coluna, cada tupla da lista deverá conter todos os valores de uma única linha inserida, exemplo:
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)