Home / BIG DATA / Drops: nested json e pandas

Drops: nested json e pandas

Com o pandas é possível trabalhar de forma muito facilitada com as mais diversas formas de dados e formatos. Uma delas é carregar dados de um json para um dataframe:

Porém quando estamos trabalhando com json aninhados / nested json, não fica mais tão simples (mas ainda sim, simples)

Nested json são “jsons dentro de um json”, e para conseguir alcançar esta informação, alguns parâmetros devem sem cumpridos.

Como exemplo, usaremos um json aonde estão listados todos os episódios da série Game Of Thrones, hospedado em:

http://api.tvmaze.com/singlesearch/shows?q=game-of-thrones&embed=episodes

Se tentarmos usar o mesmo código do início do post, receberemos este erro:

ValueError: Mixing dicts with non-Series may lead to ambiguous ordering.

Para contornarmos esta situação, usaremos o código abaixo:

Mas se você visualizar este arquivo json em algum “beautifier code sites” como o https://codebeautify.org/jsonviewer você conseguirá enxergar melhor aonde está a informação que precisamos (no caso, a temporada, o episódio e o nome do episódio):

É aqui que entra a função json_normalize da biblioteca pandas, aonde alguns parâmetros devem ser informados:
data: valores não serializados
record_path: Caminho do objeto aonde estão os valores

Código no github:
https://github.com/marcelpinheiro/malum/blob/master/drops-nested-json-e-pandas.py

Check Also

MAD vs RMSE vs MAE vs MSLE vs R²: When to use which?

Well actually these can give you different insights into your models errors. If yy is your target, pp your …

Leave a Reply

Your email address will not be published. Required fields are marked *