I am working with data set I pull from Google sheets into Zapier. The data set looks like the below, and I am writing a code block to compare a users values against the all the values in the data set.
Bank | Product | Bundle | Restriction Geo | Restriction Geo 2 | Restriction Geo Val | Restriction Type | Restriction Type Val
_______________________________________________________________________________________________________________________________________________
Wells Savings Ind,Sp State NY,CA,NV General 100%
JMorg IRA Ind County CA Solano, Marin Claims 3
Goldman Savings All Zip 94954,27717,38002 Credit Score 680
Wells Savings All Zip 48441 General 100%
The issue I am running into is that some of the cells are themselves CSVs, so I can't pull each of the formatted columns individually and split them via .split(","). I think that what I need is to work with the raw rows, which have the following format:
[["Wells","Savings","Ind,Sp","State","","NY,CA,NV","General","100%"],["JMorg","IRA","Ind","County","CA","Solano,Marin",...,"48441","General","100%"]]
The raw rows come through as a single text string, rather than a list of lists, which is what I want. I tried running this regex pattern
(?<=\[).+?(?=\])
to extract each of the matches as line items, but this both keeps the opening and closing brackets, and leaves the values within quotes and not as lists. What I am trying to get is essentially a list of lists of lists, something like;
[[Wells,Savings,[Ind,Sp],State, ,[NY,CA,NV]...]]
This way I can do something like (I have already have this part written, and it works on test data, but that test data is already formatted as lists of lists).
for d in data_set:
temp_val = []
if d[0] == "Wells":
temp_val = d[2].split(",")
for t in temp_val:
if t == "Ind":
###do something"
temp_val.clear()
I believe that what you're looking to do is loop through your lists and convert any comma separated value into a nested list inside the main lists. The below block of code will accomplish that.
Input and code:
Output: