【发布时间】:2015-02-18 20:57:26
【问题描述】:
我正在使用 Beautifulsoup 解析一个文件,并将 2 个列表构建为字典中的值。
degree = []
for h5 in soup.find_all("info", "degree"):
degree.append(h5.text.encode("utf-8"))
print degree
major = []
for h5 in soup.find_all("info", "major"):
major.append(h5.text.encode("utf-8"))
print major
有时每个列表的长度不同(缺少值)。
如何确保在构建字典之前检测到这一点,以便添加 "None" 值?
我尝试使用:
for k in set(major).difference(degree):
degree[k] = "None"
但它没有正常工作。
TypeError: list indices must be integers, not str
我希望我的问题足够清楚。 谢谢。
【问题讨论】:
-
你想用
degree和major创建你的字典吗? -
Padraic,我不知道要预先替换哪个值。
-
Kasra,字典将包含学位和专业列表作为值。
-
Kasra、degree 和 major 将提供 dict 的值(degree 的第一个值与 major 的第一个值,依此类推)。当缺少一个值时,该对是不完整的。
-
@Diego 那么你的字典的键是什么?
标签: python list dictionary beautifulsoup missing-data