Python tkinter中的Pprint

Python tkinter中的Pprint,python,python-3.x,tkinter,Python,Python 3.x,Tkinter,我正试图找到一种方法来显示一个标题、URL和时间戳的列表,我正在为GUI开发一个google搜索/RSS提要。我很难找到一种方法将结果排序为一种可读的形式。如有任何文章或指导,我们将不胜感激 from tkinter import * import urllib.request import feedparser from pprint import pprint search_term = ('') #search term for url quoted_search_term = ur

我正试图找到一种方法来显示一个标题、URL和时间戳的列表,我正在为GUI开发一个google搜索/RSS提要。我很难找到一种方法将结果排序为一种可读的形式。如有任何文章或指导,我们将不胜感激

from tkinter import *
import urllib.request
import feedparser
from pprint import pprint



search_term = ('') #search term for url
quoted_search_term = urllib.parse.quote(search_term) 
def go():
    text.delete(1.0, END) #delete text
    rss_string = 'https://news.google.com/news/section?output=rss'.format       (quoted_search_term)
    parsed_rss_string = feedparser.parse(rss_string) #assigning variable for  parsed feed
    text.insert(1.0, parsed_rss_string) #insert text of parsed feed 


browser_window = Tk() #tk window
browser_window.title('RSS Feed') #Window title
label = Label(browser_window, text= 'Search:') 
entry = Entry(browser_window)
button = Button(browser_window, text='Go', command = go)#Go Button 
text = Text(browser_window) #results box

label.pack(side=TOP) #Positioning of search title
entry.pack(side=TOP) #Positioning of search box
button.pack(side=TOP)#Positioning of go
text.pack(side= RIGHT) #Positioning of text
browser_window.mainloop()

要美化字符串,请使用
pprint.pformat

from pprint import pformat

...

def go():
    ...
    parsed = feedparser.parse(rss_string)
    prettified = pformat(parsed)
    text.insert("1.0", prettified)
注:

  • url中没有占位符
    https://news.google.com/news/section?output=rss
    str.format
    无效
  • feedparser.parse不返回字符串,而是返回字典

更新要仅显示发布日期、标题、url,您需要从字典中获取这些条目:

def go():
    rss_string = 'https://news.google.com/news/section?output=rss'
    parsed = feedparser.parse(rss_string)
    text.delete("1.0", END)
    for entry in parsed['entries']:
        text.insert(END, '{0[published]} - {0[title]} {0[link]}\n\n'.format(entry))

我不明白
pprint
与此有什么关系。你正在向文本框中写入,而不是打印。有没有办法只显示文章的标题、url和日期而不显示其他内容,或者我必须使用dict才能获得它?@learningpython,我添加了另一个版本的
go()
,其中显示日期、标题、,只有url。我最终完成了这项工作,得到了与您的解决方案非常相似的东西。谢谢你的帮助!