2017-10-17 2 views
-1

Tout ce que je veux un texte simple et la sortie de la requête SQL utilisée en pythonComment faire changer le format de sortie SQL Recieved, en python

import psycopg2 
    conn = psycopg2.connect("dbname='news' user='postgres'") 
    print("On which days did more than 1% of requests lead to errors? \n") 
    cursor = conn.cursor() 
    cursor.execute(
     "SELECT *FROM(SELECT date(time), round((count(status) FILTER (WHERE 
    NOT status ='200 OK'))::numeric * 100/count(status), 2) AS 
    error_percentage FROM log GROUP BY date(time) ORDER BY error_percentage 
    DESC) AS I WHERE error_percentage > 1;") 

    results = cursor.fetchall() 
    print (results) 
    conn.close() 

This is the output what i am getting.

Ce que je veux exactement sortie comme ça .. .....

Sur quels jours plus de 1% des demandes ont-elles entraîné des erreurs? [17 juillet 2016 - 2,27% d'erreurs]

+0

Lisez les docs sur 'str.format()' –

Répondre

0

Vous devez corriger votre SQL: créez une chaîne dans la forme que vous voulez qu'elle soit. Quelque chose comme

select to_char(date(time), 'FMDay, FMDD, FMYear') + " - " + to_char(dec_value) + "% errors" 

Sinon, vous obtiendrez tableau en retour.

+0

Mais si j'utilise to_char pour la valeur décimale, je ne pourrai pas utiliser la clause where. Ce qui est mentionné dans la dernière ligne de la requête sql –

+0

Make to_char au deuxième niveau de select (le supérieur) – Alex