Как отпарсить текст в Python?
Подобные вопросы напоминают мне про то как "двое из ларца" все все делали.
>>> data = "ID: 001; Username: Ivan; Balance: 01.00; Status: active;"
>>> dict(x.split(":") for x in data.replace(" ","").split(";") if ":" in x)
{'ID': '001', 'Username': 'Ivan', 'Balance': '01.00', 'Status': 'active'}
>>> import re
>>> dict(re.findall("([^:]+):\s?([^;]+);\s?",data))
{'ID': '001', 'Username': 'Ivan', 'Balance': '01.00', 'Status': 'active'}
>>>
Здесь можно без парсинга регулярными выражениями обойтись, а использовать разделение функцией разделения строки split,  которая встроена в каждый объект типа строка
Далее из результата разбивки 
 ['ID: 001', ' Username: Ivan', ' Balance: 01.00', ' Status: active', '']
берутся элементы 0,1,2, снова разбиваются по ':'
' Username: Ivan' ->[' Username',' Ivan']
и затем исключается оставшийся слева пробел через взятие строки-результата как списка символов без нулевого элемента [1:]

str1='ID: 001; Username: Ivan; Balance: 01.00; Status: active;'
out=str1.split(';')
id=out[0].split(':')[1][1:]
username=out[1].split(':')[1][1:]
balance=out[2].split(':')[1][1:]