2016-07-09 3 views
0

Ich bekomme den Text aus dem Titel und href Attribute aus dem HTML. Der Code läuft gut und ich kann alles in eine PrettyTable-Strafe importieren. Das Problem, dem ich jetzt gegenüberstehe, ist, dass es einige Titel gibt, die meiner Meinung nach zu groß für eines der Felder in der Tabelle sind und somit das gesamte PrettyTable-Format verzerren. Ich habe versucht, die hrules, vrules und padding_width anzupassen und habe keine Auflösung gefunden.Wie würde ich Daten in einer PrettyTable formatieren?

from bs4 import BeautifulSoup 
from prettytable import PrettyTable 
import urllib 


r = urllib.urlopen('http://www.genome.jp/kegg-bin/show_pathway?map=hsa05215&show_description=show').read() 
soup = BeautifulSoup((r), "lxml") 


links = [area['href'] for area in soup.find_all('area', href=True)] 
titles = [area['title'] for area in soup.find_all('area', title=True)] 


k = PrettyTable() 
k.field_names = ["ID", "Active Compound", "Link"] 
c = 1 
for i in range(len(titles)): 
    k.add_row([c, titles[i], links[i]]) 
    c += 1 

print(k) 

Wie ich die gesamte Tabelle als angezeigt werden möchten:

print (k.get_string(start=0, end=25)) 

Wenn Pretty kann es nicht tun. Gibt es andere empfohlene Module, die dies erreichen könnten?

Antwort

0

Dies war kein Formatierungsfehler, aber die Gesamtgröße der erstellten Tabelle war so groß, dass das Python-Fenster nicht alle Werte auf dem Bildschirm aufnehmen konnte.

Dies hat sich durch eine Änderung auf eine viel kleinere Schriftgröße bewährt. Wenn es jemandem hilft, als .csv zu exportieren, dann hilft das Arrangieren in Excel.

Verwandte Themen