экспорт колб и запрос соединения - PullRequest
0 голосов
/ 07 ноября 2019

Привет! Я пытаюсь перебрать фрейм данных с помощью команд sql, поскольку я перебираю команды, которые я хочу выполнить. я также хочу, чтобы неудачные команды попали в отдельный список, для которого я могу затем создать отчет. успешные запросы, которые я хочу получить, заканчиваются на моей странице фляги.

код ниже читает во фрейме данных, я забочусь только о трех столбцах: «ID», «wrote_query», «short_desc». после прочтения я назначаю столбцы, которые меня интересуют, новому фрейму данных. как только у меня есть, что я подключаюсь к базе данных SQLчасть, в которой я отказываюсь, это логика цикла for.

, поэтому, когда я перебираю d1, я хочу вывести результаты в новый фрейм данных, а также вывести команды с ошибками в список, см. ниже на моемпопытка

class Qanalysis:

  def read_sql(self)

    d1 = pd.read_csv('filename.csv')
    d2 = pd.dataframe(columns=[['ID', 'written_query', 'short_desc']])
    d2['ID'] = d1['analysis_id']
    d2['written_query'] = d1['query_syntax']
    d2['description'] = d1['short_desc']
    d2 = d2.to_json()
    conn = pyodbc.connect("driver, server, database, trusted_connection")
    keep_fails = []
    for query in d1['query_syntax']:
        try:
            df = pd.read_sql(query, conn)
        except:
            keep_fails.append(query)
    return(df, keep_fails)

прямо сейчас это возвращает только фрейм данных, а не результаты, оно также возвращает неудачные запросы, но у идентификатора нет идентификаторов анализа, чтобы знать, какой запрос выводится, что является еще одной проблемой, я думаю, что ямогу сообразить. но любые способы, которыми у меня есть все это, выводятся на странице фляги.

@app.route('/reporting/Query', methods = ["GET"])
@login_required
def ReadingQueries():
    Q = Qanlysis()
    return(jsonify ({"reading_sql_query": Q.read_sql()}), 200)

вышеприведенный @ app.route - это то, где я положил результат, он не очень хорош, буквально все письменные запросы идут туда-сюда, где я хотел бы получить результаты запросов вместо этого с отдельнымсписок неудачных команд запроса рядом с идентификаторами анализа, чтобы я мог их распознать.

И последнее, но не менее важное: я пытался экспортировать страницу в csv, но пока не уверен, как мне это сделать, но ниже приведена моя попытка:

@app.route('/reporting/Query', methods = ['GET'])
@login_required
def export_file(readingQueries):
    report = df.to_csv('query_results')
    return(report) 

в общем, я пытаюсьавтоматизировать процесс чтения запросов и вывода результатов на страницу, которую я позже смогу экспортировать в отчет в виде файла excel, который показывает все выполненные команды, а также неудачные, чтобы я мог вернуться и проверить ихвручную. также я знаю, что не пишу это эффективно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...