Вставка JSONB переменной в таблицу с помощью Psycopg2 (Python для Postgres)Python

Программы на Python
Anonymous
Вставка JSONB переменной в таблицу с помощью Psycopg2 (Python для Postgres)

Сообщение Anonymous »

Моя задача — получить JSON-данные из pokeapi и поместить их в таблицу на pg4e-сервере (postgres для всех) с psycopg2.
Это работает, хотя я не могу поместить JSON-данные из Python в столбец JSONB таблицы на сервере. Я попробовал несколько подходов, но мне нужна ваша поддержка.
Как я могу взять JSON, сохраненный в переменной (текст), и сохранить его в таблице?
Заранее большое спасибо
Мой код:
Imports...

conn...
cur...

sql = '''
CREATE TABLE IF NOT EXISTS pokeapi (id INTEGER, body JSONB);
'''
print(sql)
cur.execute(sql)

url = 'https://pokeapi.co/api/v2/pokemon/1'

print('=== Url is', url)

response = requests.get(url)
text = response.text
print('=== Text is', text)
text = json.loads(text)

sql = f'Insert into pokeapi (id, body) Values (1, 'text'::JSONB);'
cur.execute(sql, (text, url))

conn.commit()

cur.close()

Ответ:
CREATE TABLE IF NOT EXISTS pokeapi (id INTEGER, body JSONB);

=== Url is https://pokeapi.co/api/v2/pokemon/1
=== Text is {"abilities":[{"ability":{"name":"overgrow","url":"https://pokeapi.co/api/v2/ability/65/"}....

line 43
sql = f'Insert into pokeapi (id, body) Values (1, 'text'::JSONB);'
^^^^
SyntaxError: invalid syntax


Подробнее здесь: https://stackoverflow.com/questions/789 ... o-postgres

Вернуться в «Python»