LINUX.ORG.RU

История изменений

Исправление 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)