Я пытаюсь проанализировать строку, отформатированную с использованием inspect.formatargvalues
, и хочу иметь возможность извлечь значения аргумента и сохранить их в словаре.
ЗдесьВот несколько примеров текста:
CALL function.a(timeout_secs=10)
CALL function.b(x=something good (happy days, ABC 123), y_z=None, check_this=True, check_this_2=None, extra_info=None, press=False, timeout_secs=30)
CALL function.c(key='A_B')
CALL function.d(target=<Tab.Chrome: 'tab-chrome'>)
CALL function.e(music_type=<MusicType.ALBUM: 1>, term=None, genre=None, results=True)
CALL function.f(button='END', delay=None)
В данный момент я извлекаю параметры, используя регулярное выражение для получения:
timeout_secs=10
x=something good (happy days, ABC 123), y_z=None, check_this=True, check_this_2=None, extra_info=None, press=False, timeout_secs=30
key='A_B'
target=<Tab.Chrome: 'tab-chrome'>
music_type=<MusicType.ALBUM: 1>, term=None, genre=None, results=True
button='END', delay=None
Затем я делю на ',', а затемпреобразование массива в словарь.
dict(parameter.split("=") for parameter in array_of_parameters)
Это работает по большей части, но очевидно разбивается при разборе:
x=something good (happy days, ABC 123), y_z=None, check_this=True, check_this_2=None, extra_info=None, press=False, timeout_secs=30
Есть ли способ преобразовать аргументы в словарь, где онохватывает все эти сценарии?