По сути, я пытаюсь использовать множество маршрутов API и создавать таблицы на основе каждого маршрута. Каждый маршрут имеет разные пары ключ / значение, которые я хочу импортировать в базу данных. Я сталкиваюсь с проблемами, передающими данные динамически как оператор SQL.
Я действительно не думаю, что это лучший способ справиться с этим, поэтому я ищу некоторое понимание. Заранее спасибо!
В настоящее время я сталкиваюсь с проблемой, когда динамические c поля, то есть «списки», записываются как «списки» в операторе sql, поэтому он выглядит как «CREATE». ТАБЛИЦА «Списки», которая выдает большую ошибку.
import requests
import json
import psycopg2
import re
objects = ["lists", "lists2"]
def main(item):
data = auth(item)
createTable(data, item)
# writeItems(data, item)
def auth(item):
url = f"www.exampleapi.com/{item}"
print(url)
headers = {
'Content-Type': 'application/json',
}
response = requests.request("GET", url, headers=headers)
return json.loads(response.text.encode('utf8'))
def createTable(data, item):
queryObj = data["value"][0]
keys = []
for key, value in queryObj.items():
keys.append(re.sub(r'/[^A-z\d]/g', "", key) + " varchar")
conn=psycopg2.connect("Postgresql table here")
cur = conn.cursor()
cur.execute("""CREATE TABLE %s VALUES ((row_num Serial, %s);""", (item, key))
conn.commit()
conn.close()
for item in objects:
main(item)