<p>可以使用<code>parse</code>方法创建类:</p>
<pre><code>import re
new_s = iter([re.sub('^\s+', '', i) for i in filter(None,
s.split('\n'))])
from collections import defaultdict
class DictObject:
def __init__(self, d):
self.d = d
self.current_dict = {}
self.parse()
def parse(self):
while True:
current = next(self.d, None)
if not current:
break
if current.endswith('{'):
second_piece = DictObject(self.d)
self.current_dict[current] = second_piece.current_dict
self.d = second_piece.d
elif current == '}':
break
else:
self.current_dict[current] = ''
print(self.current_dict)
c = DictObject(new_s)
print(c.current_dict)
</code></pre>
<p>输出:</p>
<pre><code>{'Chain1 {': {'Chain1_Chain2 {': {'Chain1_Chain2_Chain3 {': {'Chain1_Chain2_Chain3_value1': '',
'Chain1_Chain2_Chain3_value2': '',
'Chain1_Chain2_Chain3_value3': ''},
'Chain1_Chain2_Chain4 {': {'Chain1_Chain2_Chain4_value1': '',
'Chain1_Chain2_Chain4_value2': '',
'Chain1_Chain2_Chain4_value3': ''},
'Chain1_Chain2_value1': ''},
'Chain1_value1': ''}}
</code></pre>