通过`re.match`解析数据并将其放入元组/列表/字典中

时间:2016-05-25 12:14:09

标签: python dictionary

我目前正在解析大量数据(用户数据)并将其匹配到各个组中供以后使用。

我不确定最好的方法是将数据放入像这样的元组列表中

[(data1value,data2value,data3value,data4value)]

然后将列表中的所有元组转换为字典,以便为它们提供更好的描述,然后将它们分类为更容易的用户,就像这样?

{Username:data1value,Account:data2value,Description:data3value,SID:data4value}

使用用户名作为密钥并嵌套其余数据?

代码段显示解析和re.match进程。

data1 = matches.group(2).lstrip().strip()
data2 = matches.group(6).lstrip().strip()
data3 = matches.group(8).lstrip().strip()
data4 = matches.group(10).lstrip().strip()

details.append((data1, data2, data3, data4))

for item in details:
    print item

输出

('value', 'value', 'value', 'value)
('value', 'value', 'value', 'value)
('value', 'value', 'value', 'value)

2 个答案:

答案 0 :(得分:0)

取决于您在收集数据后如何使用该数据。

如果您打算缩短它,可以跳过一步,直接将其写入dict()而不是创建元组。但只要你最后有一个dict(),它就应该灵活且易于访问。

答案 1 :(得分:0)

以下代码段会将您的元组列表转换为带有提供的字段名称的字典列表:

fields = ['Username', 'Account', 'Description', 'SID']
dicts = [dict(zip(fields, values)) for values in details]

您也可以使用类似的方法在没有元组步骤的情况下立即收集字典列表。