очень не питонический способ, также делает много предположений.
text = "value_1 : 12.14% ,value_2 : 14.14% ,value_3 : 92.23% ,value_3 : 17.22% ,"
s = text.split(',')
for part in s:
if '%' in part:
number = part.split(':')[1].strip()[:-1]
print(number)
Вот решение для регулярных выражений:
text = "value_1 : 12.14% ,value_2 : 14.14% ,value_3 : 92.23% ,value_3 : 17.22% ,"
regex = r'\:.*?(\d+\.\d+)%' # find all parts starting with the ';' char,
# then skip all characters until digit is found,
# and then extract the float number until the
# '%' char appears
res = re.findall(regex, text)
for r in res:
print(r)