情况:
我抓的每个页面都有<input>
个元素,其中包含title=
和value=
我不知道页面上会发生什么。
我希望最后将所有收集的数据放在一个表格中,每个标题都有一列。
所以基本上,我需要每行数据与其他所有数据对齐,如果一行没有某个元素,那么它应该是空白的(但必须有一些东西来保持对齐)。
例如
首页有:{animal: cat, colour: blue, fruit: lemon, day: monday}
第二页有:{animal: fish, colour: green, day: saturday}
第三页有:{animal: dog, number: 10, colour: yellow, fruit: mango, day: tuesday}
然后我的结果表应该是:
animal | number | colour | fruit | day
cat | none | blue | lemon | monday
fish | none | green | none | saturday
dog | 10 | yellow | mango | tuesday
虽然最好保持title
value
对的顺序,我知道字典不会这样做。
所以基本上,我需要从所有titles
生成列(按顺序保存,但不知何故合并在一起)
在不知道所有可能的标题并明确指定要放入值的顺序的情况下,最好的方法是什么?
答案 0 :(得分:2)
您需要一个多通道算法。记住dicts列表中的所有已删除页面。在第一遍中,遍历此列表并收集set()中的所有标题,并创建排序(例如,转换为列表按字母顺序排序)。
在第二遍中打印表并使用生成的排序作为列名,根据需要从字典中提取值(默认为空以处理缺失值),例如使用dict.get(name,“”)
答案 1 :(得分:0)
我建议您可以使用可选参数,或者使用重载构造函数来填充值:
Page(string animal = string.empty,
int number = -999, string colour = string.empty, day = string.empty )
或者将每个键/值对存储为类型对象,然后从您的页面中投射它。