如何为许多不同的字段存储我的正则表达式代码?

时间:2019-07-12 07:03:08

标签: python regex dictionary

我有一个数据框,其中包含许多描述项目属性的不同字段。所有字段均由字段ID标识,并且所有字段都需要不同的正则表达式来修复其中的数据。像这样:

|--field id--|--field value--|
|--25478963--|--1354cm45dia--|
|--98746534--|--15(whatevr)--|
|--98764566--|--789654125ly--|

因此,我需要对这些字段进行清理,并根据字段ID为每个字段应用特定的正则表达式。我的df中有大约一百万个项目,每个项目都有大约40个字段(因此,我的数据框中也有一个项目ID列)。我想从文件中读取我的正则表达式,并根据字段ID应用于一个字段。这是我的正则表达式的实际词典:

{
    "43455": ["(\(.*\))"],
    "55655": ["(\d{2,3})\"],
    "42655": ["(\d{3})"],
    "42665": ["(\d{3})"],
    "9644": ["(\d{2,3})"]
}

但是当我加载它时,反斜杠加倍,因此正则表达式将不起作用:

field_regex = eval(open("link_to_file", 'r').read())

我得到的是

In [220]:field_regex["43455"][0]
Out[220]: '(\\(.*\\))'

如何从dict加载我的正则表达式并使之适用于我的数据框字段?

0 个答案:

没有答案