您好,怎么用python处理纯文本数据为二维数组?

您好,怎么用python处理纯文本数据为二维数组?

1. ad-表方向或加强语气

原型:ad-(在拉丁语中出现在元音或辅音d、h、j、m和v 前)

aducir (拉丁语addūcere、英语adduce:ad-表方向+dūcere领导) tr.引证,举例(西语中只保留一个d)

变体:ad-和除d、h、j、m、v之外的辅音字母连用时发生逆行完全同化。其变体较多,请结合"逆行完全同化"的概念记忆。

abreviar (拉丁语abbreviāre、英语abbreviate :ad-→ab-+breviāre变短)tr.缩短(西语中只保留一个b)

afiliar (拉丁语affīliāre、英语 affiliate:ad-→af-+fil?us儿子+-āre) tr. 使参加(党派,团体等)

2. ab-分离、远离

原型:ab-

abducir (拉丁语abdūcere、英语abduce:ab-远离+duc-引导+-ir ) tr. 诱拐,绑架

abusar (拉丁语abusāre、英语abuse:ab-远离+us-使用+-ar ?远离正常的使用范围) intr. 乱用,滥用

变体:abs-用在以c或t为首字母的词根前

absceso (拉丁语abscessus、英语abscess:ab-表示远离→abs-;ces-走?从平面中走出?凸起; ) m. 脓肿,脓疡

abstraer (拉丁语abstrahere、英语abstract:ab-远离→abs-+tra-拉,抽+-er?使抽离现实) tr. 使抽象化

请问怎么用python处理如上数据成如下JSON数据?

{

"prefix":"ad",

"intro":"表方向或加强语气",

"prototype":{

"intro":"ad-(在拉丁语中出现在元音或辅音d、h、j、m和v 前)",

"list":[

{"word":"aducir","meaning":"(拉丁语addūcere、英语adduce:ad-表方向+dūcere领导) tr.引证,举例(西语中只保留一个d)"}

]

},

"variation":{

"intro":"ad-和除d、h、j、m、v之外的辅音字母连用时发生逆行完全同化。其变体较多,请结合"逆行完全同化"的概念记忆。",

"list":[

{"word":"abreviar","meaning":"(拉丁语abbreviāre、英语abbreviate :ad-→ab-+breviāre变短)tr.缩短(西语中只保留一个b)"},

{"word":"afiliar","meaning":"(拉丁语affīliāre、英语 affiliate:ad-→af-+fil?us儿子+-āre) tr. 使参加(党派,团体等)"}

]

}

}

{

如上。。。

}


回答:

import re

content = """..."""

def extract_case(text):

return [dict(zip(["word", "meaning"], i.split(maxsplit=1))) for i in text.split("\n") if i]

exp_parts = (

"\d+\.\s([a-z]+)-(.*?)\n"

"原型:(.*?)\n"

"((?:[a-z]+.*?\n)+)"

"变体:(.*?)\n"

"((?:[a-z]+.*?\n)+)"

)

parts = re.findall(exp_parts, content)

result = []

for part in parts:

prefix, intro, prototype, prototype_text, variation, variation_text = part

result.append(

{

"prefix": prefix,

"intro": intro,

"prototype": {"intro": prototype, "list": extract_case(prototype_text)},

"variation": {"intro": variation, "list": extract_case(variation_text)},

}

)

以上是 您好,怎么用python处理纯文本数据为二维数组? 的全部内容, 来源链接: utcz.com/a/158754.html

回到顶部