У меня есть входная строка, подобная показанной ниже. Я хотел бы разобрать его на основе запятых в dict, как показано ниже. Проблема в том, что иногда внутри круглых скобок содержатся запятые, как в примере ниже, а также кавычки внутри кавычек. Я не очень хорошо разбираюсь в сопоставлении регулярных выражений, поэтому буду очень признателен за любые советы.
вход:
"ty_event_name, from_unixtime(unix_timestamp(regexp_replace(ty_date,'/','-'),'MM-dd-yyyy'),'yyyy-MM-dd') as ty_date,'${hiveconf:run_dt}' as sessions_fy,orders_xy"
выход:
{1:'ty_event_name',
2:'from_unixtime(unix_timestamp(regexp_replace(ty_date,'/','-'),'MM-dd-yyyy'),'yyyy-MM-dd') as ty_date',
3:''${hiveconf:run_dt}' as sessions_fy',
4:'orders_xy'}
Пытался:
import pandas as pd
import numpy as np
import re
teststr="ty_event_name, from_unixtime(unix_timestamp(regexp_replace(ty_date,'/','-'),'MM-dd-yyyy'),'yyyy-MM-dd') as ty_date,'${hiveconf:run_dt}' as sessions_fy,orders_xy"
tstr=re.sub('(?!\B"[^"]*),(?![^"]*"\B)',',',teststr).split()
tstr
Выход:
['ty_event_name,',
"from_unixtime(unix_timestamp(regexp_replace(ty_date,'/','-'),'MM-dd-yyyy'),'yyyy-MM-dd')",
'as',
"ty_date,'${hiveconf:run_dt}'",
'as',
'sessions_fy,orders_xy']