Я пытаюсь динамически создать две таблицы (учетная запись, актив), запрашивая результаты таблицы метаданных, в которой хранятся имя таблицы, поля и тип (тип данных) каждой таблицы. Таким образом, мои выходные данные должны быть двумя таблицами (счет и актив) с соответствующими полями и типами данных в операторе создания. Когда я запускаю мой код ниже, я получаю сообщение об ошибке.
Вот stockssd (таблица метаданных), в которой хранятся метаданные:
Вот мой код:
from simple_salesforce import Salesforce, SFType, SalesforceLogin
from pandas import DataFrame, read_csv
import json
import pandas as pd
from pprint import pprint as pp
import time
from sqlalchemy import create_engine
import config
import logging
def sf_login():
"""
Purpose: This function is designed to validate your Salesforce credentials and create/return an instance or session.
Note: If we have already signed in, this will just return the original object.
Note: The credentials are being held inside of the config.py file.
"""
session_id, instance = SalesforceLogin(username=config.username,
password=config.password,
security_token=config.security_token)
sf_conn = Salesforce(instance=instance,
session_id=session_id)
return sf_conn
def get_sf_metadata():
import sqlite3
#Tables I want to be dynamiclly created
table_names=['account','asset']
#SQLIte Connection
conn = sqlite3.connect('example.db')
c = conn.cursor()
c.execute('select * from stockssd')
query_result = [ dict(line) for line in [zip([ column[0] for column in c.description], row) for row in c.fetchall()] ]
#For loop to create 2 tables called account and asset and pass the name and type in the record into the create statement
for record in query_result:
for objects in table_names:
if objects == record['object']:
c.execute('''CREATE TABLE {0}
({1} {2}, {1} {2}, {1} {2})'''.format(objects, record['name'],record['type']))
#c.execute('select * from {}'.format(x['object']))
get_sf_metadata()
Вот сообщение об ошибке, которое я получаю:
Любые идеи или предложения, как это исправить?