Python SQL запрос для массовой динамики c таблицы / столбцы - PullRequest
0 голосов
/ 15 апреля 2020

По сути, я пытаюсь использовать множество маршрутов 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...