Вставка 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»