将不可预测的数据转换为表格格式

时间:2010-05-05 10:20:33

标签: python tabular

情况:

我抓的每个页面都有<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生成列(按顺序保存,但不知何故合并在一起)

在不知道所有可能的标题并明确指定要放入值的顺序的情况下,最好的方法是什么?

2 个答案:

答案 0 :(得分:2)

您需要一个多通道算法。记住dicts列表中的所有已删除页面。在第一遍中,遍历此列表并收集set()中的所有标题,并创建排序(例如,转换为列表按字母顺序排序)。

在第二遍中打印表并使用生成的排序作为列名,根据需要从字典中提取值(默认为空以处理缺失值),例如使用dict.get(name,“”)

答案 1 :(得分:0)

我建议您可以使用可选参数,或者使用重载构造函数来填充值:

Page(string animal = string.empty, 
int number = -999, string colour = string.empty, day = string.empty )

或者将每个键/值对存储为类型对象,然后从您的页面中投射它。