История изменений
Исправление
serg002,
(текущая версия)
:
text = """
aaa.bbb.ccc.ddd = {
some = some;
some1 = some1;
}
aaa1..bbb.ccc.ddd = {
some = some;
some1 = some1;
}
aaa2.bbb = {
some = some;
some1 = some1;
}
.aaa3.bbb.ccc = {
some = some;
some1 = some1;
}
"""
import re
from collections import defaultdict
from ast import literal_eval
items = defaultdict(dict)
for name, lines in re.findall(r'[^.]+(\.[^.]+ = {\s*(.*?)\s*}', text, flags=re.S):
for var, val in re.findall(r'\s*(\w+)\s*=\s*(.*?);?$', lines, flags=re.M):
# items[name][var] = literal_eval(val)
items[name][var] = val
print('\n')
for k,v in items.items():
print(k, v)
Исправление
serg002,
:
text = """
aaa.bbb.ccc.ddd = {
some = some;
some1 = some1;
}
aaa1..bbb.ccc.ddd = {
some = some;
some1 = some1;
}
aaa2.bbb = {
some = some;
some1 = some1;
}
.aaa3.bbb.ccc = {
some = some;
some1 = some1;
}
"""
import re
from collections import defaultdict
from ast import literal_eval
items = defaultdict(dict)
for name, lines in re.findall(r'[^.]+(\.[^.]+) = {\s*(.*?)\s*}', text, flags=re.S):
for var, val in re.findall(r'\s*(\w+)\s*=\s*(.*?);?$', lines, flags=re.M):
# items[name][var] = literal_eval(val)
items[name][var] = val
print('\n')
for k,v in items.items():
print(k, v)
Исходная версия
serg002,
:
text = """ aaa.bbb.ccc.ddd = { some = some; some1 = some1; } aaa1..bbb.ccc.ddd = { some = some; some1 = some1; } aaa2.bbb = { some = some; some1 = some1; }
.aaa3.bbb.ccc = { some = some; some1 = some1; }
"""
import re from collections import defaultdict from ast import literal_eval
items = defaultdict(dict) for name, lines in re.findall(r’[^.]+(.[^.]+) = {\s*(.?)\s}‘, text, flags=re.S): for var, val in re.findall(r’\s*(\w+)\s*=\s*(.*?);?$’, lines, flags=re.M): # items[name][var] = literal_eval(val) items[name][var] = val
print(‘\n’)
for k,v in items.items(): print(k, v)