Python:解析标记的字符串,将其划分为子字符串以填充json文件
“Q: 如何检查文本文件是否包含所有标记(例如,在查找表中预先定义),然后解析这些标记之间出现的所有子字符串,并使用它们填充新的json文件 示例文本文件:Python:解析标记的字符串,将其划分为子字符串以填充json文件,python,string,dictionary,Python,String,Dictionary,“Q: 如何检查文本文件是否包含所有标记(例如,在查找表中预先定义),然后解析这些标记之间出现的所有子字符串,并使用它们填充新的json文件 示例文本文件: # AB C: definition of ab c ## DEF: definition of def ### GHI: definition of ghi more defintion of ghi a tricky : appears in this defintion 标记查找表示例: # AB C : ab c ## DEF
# AB C:
definition of ab c
## DEF: definition of def
### GHI:
definition of ghi
more defintion of ghi
a tricky : appears in this defintion
标记查找表示例:
# AB C : ab c
## DEF : def
### GHI : ghi
## JKL : jkl
所需的json输出:
{
'ab c': 'definition of ab c',
'def': 'definition of def',
'ghi': 'definition of ghi',
'jkl': ''
}
> Warning: Tag '## JKL' is missing
目前的做法:
创建两个标记字典,一个类似于示例查找表,第二个以第一个的值作为键,以空字符串作为值
text = '''# AB C:
definition of ab c
## DEF: definition of def
### GHI:
definition of ghi
more defintion of ghi
a tricky : appears in this defintion'''
lookup = {
'# AB C' : 'ab c',
'## DEF' : 'def',
'### GHI' : 'ghi',
'## JKL' : 'jkl',
}
lookup_rev = {
'ab c' : '',
'def' : '',
'ghi' : '',
'jkl' : '',
}
但是我不知道如何检查字符串中的子字符串(标签)以及如何提取每个标签后面的子字符串
重要提示1:标记可以包含空格,例如:“##AB C”。此外,HasTag的确切数量很重要,需要包括在查找中
要点2:定义可能是多行的,并且“:”也可能出现在定义中,因此这不是保存拆分点
印刷品:
{'ab c': 'definition of ab c',
'def': 'definition of def',
'ghi': 'definition of ghi\n'
' more defintion of ghi\n'
' a tricky : appears in this defintion',
'jkl': ''}
> Warning: Tag jkl is missing
请展示您到目前为止所做的工作。我不明白“解析这些标记之间的所有子字符串”是什么意思,您正在解析什么,本例中的标记是什么?示例文件中多个“#”背后的逻辑是什么?它是一个标记文件@eleliasMultiline不受支持,并且定义中的“:”也会将其弄乱。文本的最后更新:标记可能包含空格(例如#AB C)。这仍然会导致错误,很抱歉经常更改示例。最后,是否可以不使用lookup_表字符串而仅使用lookup dict来执行此操作?@gustavz是的,这是可能的。看看我的答案。
{'ab c': 'definition of ab c',
'def': 'definition of def',
'ghi': 'definition of ghi\n'
' more defintion of ghi\n'
' a tricky : appears in this defintion',
'jkl': ''}
> Warning: Tag jkl is missing