Форум сайта python.su
есть конструкция:
mystr =
"""EXPECTED:
SQL:
select * from my_table
ACTUAL:
PLSQL:
begin
DBMS_OUTPUT.put_line(mypckg.myfunc (256));
end;
MSG:
MSG_FAIL: FAIL
MSG_PASS: PASS"""
dict({'EXPECTED' : {'SQL' : 'select * from my_table'}, 'ACTUAL' : {'PLSQL' : 'begin DBMS_OUTPUT.put_line(mypckg.myfunc (256)); end;'}, 'MSG' : {'MSG_FAIL' : 'FAIL' , 'MSG_PASS' : 'PASS'}})
Отредактировано (Сен. 4, 2009 10:01:35)
Офлайн
ну с .split(), максимум что у меня получилось, правда “FAIL MSG_PASS” не получилось отловить неявным образом :) В общем может быть split(), тут действительно не подойдет. Но если строки будут приблизительно такого же формата - то , в принципе, несложно будет преобразовать получившийся список в словарь.:
mystr ="""EXPECTED:
SQL:
select * from my_table
ACTUAL:
PLSQL:
begin
DBMS_OUTPUT.put_line(mypckg.myfunc (256));
end;
MSG:
MSG_FAIL: FAIL
MSG_PASS: PASS"""
mystr = mystr.replace("\n\n",":")
mystr = mystr.replace("MSG_PASS",":MSG_PASS")
rlist=mystr.split(":")
mylist = [line.strip().replace("\n","") for line in rlist]
print mylist
['EXPECTED', 'SQL', 'select * from my_table', 'ACTUAL', 'PLSQL', 'begin DBMS_OUTPUT.put_line(mypckg.myfunc (256)); end;', 'MSG', 'MSG_FAIL', 'FAIL', 'MSG_PASS', 'PASS']
Отредактировано (Сен. 4, 2009 20:12:32)
Офлайн
Офлайн