Python tkinter中的Pprint
我正试图找到一种方法来显示一个标题、URL和时间戳的列表,我正在为GUI开发一个google搜索/RSS提要。我很难找到一种方法将结果排序为一种可读的形式。如有任何文章或指导,我们将不胜感激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
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。我最终完成了这项工作,得到了与您的解决方案非常相似的东西。谢谢你的帮助!