我想通过迭代两个不同的for循环来构建一个字典:
我的代码是:
from bs4 import BeautifulSoup
from xgoogle.search import GoogleSearch, SearchError
try:
gs = GoogleSearch("search query")
gs.results_per_page = 50
results = gs.get_results()
for res in results:
print res.title.encode("utf8")
print res.url.encode("utf8")
print
except SearchError, e:
print "Search failed: %s" % e
此代码为每个找到的页面输出标题和网址
我想获得以下输出
{title1:url1, title50,url50}
解决这个问题的方法是什么?
谢谢!
答案 0 :(得分:1)
如果您需要多个值,则需要一个容器,如果您有重复键,则需要collections.defaultdict或dict.setdefault:
from collections import defaultdict
d = defaultdict(list)
try:
gs = GoogleSearch("search query")
gs.results_per_page = 50
results = gs.get_results()
for res in results:
t = res.title.encode("utf8")
u = res.url.encode("utf8")
d[?].extend([t,u]) # not sure what key should be
except SearchError, e:
print "Search failed: %s" % e
我不确定键应该是什么,但逻辑将是相同的。
如果您的预期输出实际上不正确,并且您只想将每个键t
与单个值配对,则只需使用普通字典:
d = {}
try:
gs = GoogleSearch("search query")
gs.results_per_page = 50
results = gs.get_results()
for res in results:
t = res.title.encode("utf8")
u = res.url.encode("utf8")
d[t] = u
except SearchError, e:
print "Search failed: %s" % e