最近,我参与了一个研究项目,该项目将从学习如何将几个人的一系列传记数据解析为每个人的一组字典中受益匪浅。
该字符串包含断词,我希望从断词中创建键并通过换行符分隔字典。所以这里有两个人我想在我的数据中创建两个不同的字典:
银行家 = [' 巴克斯坦斯基,彼得;纽约联邦储备银行高级副总裁,自 1976 年加入纽约联储担任副总裁以来负责公共信息。负责区域和社区事务办公室的高级官员、银行监察员和执行小组高级行政官员,纽约市零儿童教育城市学院(工商管理学士,1961 年);伊利诺伊大学研究生院和纽约大学商学院。1962-6:商业和金融作家,纽约,美国银行家,纽约世界电报和太阳报,Neia York Herald Tribune(银行编辑 1964-6)。1966-74:大通曼哈顿银行:公共关系经理,1966-71 驻巴黎;大通欧洲营销和规划经理,总部设在布鲁塞尔,1971-2;副总裁兼公共关系总监,1972-4.1974-76:Bache & Co.,副总裁兼企业传播总监。巴伦,帕特里克 K.;自 1996 年 2 月起担任亚特兰大联邦储备银行第一副行长兼运营官。美联储第一副行长储备系统会议成员 迈阿密三孩教育大学银行管理委员会副主席和贴现委员会副主席(管理学学士学位);哈佛商学院(Prog 管理发展);罗格斯大学 Stonier 高级银行学研究生。1967 年:加入亚特兰大联邦储备银行,从事计算机操作 1971 年:调至迈阿密分行;1974 年:助理:总裁;1987 年:高级副总裁。1988 年:re1-亚特兰大担任企业服务主管。乔治亚州 Igmic 教育委员会执行委员会成员;前大吉州商务部副主任兼迈阿密大学校长;在亚特兰大,亚特兰大联合之路的前 ||Mte 副主席 feiSinber 领导亚特兰大。经济教育委员会成员。兴趣。' ]
例如,在这个数据中,我有两个人——Peter Batanksy 和 Patrick K. Barron。我想用这 4 个键为每个人创建一个字典:bankerjobs
、Number of children
、Education
和nonbankerjobs
.
在这个文本中已经有中断词:“m”=孩子的数量“Educ”,“m”之前的任何内容都是bankerjobs,第一个“.”之后的任何内容。Educ 之后是 nonbankerjobs,在个人之间中断的关键字似乎是“。”之后的任意数量的空格。>1
如何使用这些中断词上的正则表达式为这两个具有这 4 个键的人创建一个字典?
具体来说,哪组正则表达式可以帮助我用这 4 个键(建立在上面指定的中断词上)为这两个人创建一个字典?
我想的一个模式在 perl 中是这样的:
pattern = [r'(m/[ '(.*);(.*)m(.*)Educ(.*)/)']
但我不确定..
我认为代码将与此类似,但如果我错了,请更正:
my_banker_parser = re.compile(r'somefancyregex')
def nested_dict_from_text(text):
m = re.search(my_banker_parser, text)
if not m:
raise ValueError
d = m.groupdict()
return { "centralbanker": d }
result = nested_dict_from_text(bankers)
print(result)
我的希望是获取此代码并在所有感兴趣的个人的传记中运行它。