擅长:python、mysql、java
<p>假设您的数据存储在一个文件中,您可以构建一个简单的类来将结构解析为字典。通过为找到的每个键创建一个新的<code>Notes</code>对象,可以递归地遍历数据:</p>
<pre><code>file_data = filter(None, [i.strip('\n') for i in open('filename.txt')])
import re
class Notes:
def __init__(self, token_data):
self.token_data = token_data
self.current_dict = {}
self.current_vals = []
self.parse()
def parse(self):
while True:
start = next(self.token_data, None)
if not start or "}" in start:
break
if start.endswith('{'):
note = Notes(self.token_data)
final_result = filter(lambda x:x, note.current_vals + [note.current_dict]) if note.current_vals else note.current_dict
self.current_dict[re.findall('[\w\s\-\.]+', re.sub('^\s+', '', start))[0]] = final_result[0] if isinstance(final_result, list) and len(final_result) == 1 else final_result
self.token_data = note.token_data
else:
self.current_vals.append(re.sub('^\s+', '', start))
course_notes = Notes(iter(file_data)).current_dict
</code></pre>
<p>输出:</p>
^{pr2}$