Я пытаюсь вставить json в таблицу postgres (pgadmin4), используя python 3, но все равно получаю null - PullRequest
0 голосов
/ 14 июля 2020

У меня есть таблица Postgres в pgadmin4, в которой 2 столбца. ID (большой серийный номер, не ноль) и json (json). Я продолжаю получать значение null в моем столбце json при попытке вставить из него свои данные json, которые я получил, выполнив запрос на получение. В настройках столбца для json я не выбрал «not null».

Я все еще учусь; мой код может быть немного запутанным.

import os
import requests
import psycopg2
import json


def get_request():
    token = os.environ['TOKEN']
    url = os.environ['URL']
    payload = {}
    headers = {
        'Accept': 'application/json',
        'Authorization': 'Bearer ' + token
    }

    response = requests.request('GET', url, headers=headers, data=payload)
    result = (response.text.encode('utf8'))
    parsed = json.loads(result)
    print(parsed)
    print(type(parsed))
    

def db_connection(parsed):
    con = psycopg2.connect(
        host=os.environ['HOST'],
        dbname=os.environ['DBNAME'],
        user=os.environ['USER'],
        password=os.environ['PASSWORD'],
        port=os.environ['PORT'])
    print("CONNECTED")


    cur = con.cursor()

    cur.execute("INSERT INTO ingest.occupations_group (json) VALUES (%s)", (parsed,))
    con.commit()

    cur.close()
    con.close()

get_request()
db_connection(get_request())

И когда я запускаю код по какой-то причине, он отображает результаты дважды. Я не включил все результаты api, так как они очень длинные.

{'@odata.context': 'https://apis.burning-glass.com/v3.5/ontology/$metadata#occupationgroups',   'value': [{'id': 2, 'ontologyIRI': 
<class 'dict'>
{'@odata.context': 'https://apis.burning-glass.com/v3.5/ontology/$metadata#occupationgroups',   'value': [{'id': 2, 'ontologyIRI':
<class 'dict'>
CONNECTED

Process finished with exit code 0
...