-1

I know there is a way to expand the columns without extracting and joining/concatenating/appending data.

I have this json data which I've already normalized but I have a column that has a nested json: Image of issue

So what I want to do is to expand this json data in a way that adds columns automatically in the dataframe without indexing since the data inside that column doesn´t have any key to pair, so it should be by position/row only.

What could I do to unnest it? Thanks!

Update: In a previous step I've already normalized it:

response1 = requests.get(url1, params=params1, headers=headertoken)
textresponse1 = response1.text
   if "El contrato enviado no tiene envios registrados." in textresponse1:
                continue
textresponse1 = json.loads(response1.text)
response1_df = pd.json_normalize(textresponse1['envios'])
enviosdf = pd.concat([enviosdf,response1_df])

Problem is that, after this, the column 'bultos' is another json. Which when you try to normalize it, this happens:

0   {'kilos': 0.0025, 'IdDeProducto': 'ysyHhBHttHd...
1   {'kilos': 0.0025, 'IdDeProducto': 'QNEOqaNXtsi...
2   {'kilos': 0.0025, 'IdDeProducto': 'V7b3D7xaSur...

The normalization doesn't normalize it nor expands it.

3

1 Answer 1

-1

you should use explode before json_normalize because they are lists:

enviosdf=enviosdf.explode('bultos').reset_index(drop=True)
enviosdf=enviosdf.join(pd.json_normalize(enviosdf.pop('bultos')))
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.