2
respostas

Dúvida sobre o json

Olá! Estou tentando colocar a aula em prática, porém, ao buscar dados em uma API, o resultado é armazenado em uma variável chamada 'data' e lida com 'r.json()'. Printando 'data', o resultado é de um dicionário em formato json.

Como posso fazer pra armazenar esse resultado em um arquivo json pra que eu possa, em seguida, convertê-lo em um dataframe?

import requests
import json

url = 'https://www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol=IBM&apikey=demo'
r = requests.get(url)
data = r.json()

print(data)

Obrigado!

2 respostas

Oii Ubiratan, como você está hoje? :D

Você pode ler o json diretamente pela biblioteca pandas, eu fiz uma pequena demonstração com o seu código e o link do json que deixou disponivel, ficou assim:

import requests
import pandas as pd

url = 'https://www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol=IBM&apikey=demo'

df = pd.read_json(url)
df = df.to_csv(r'/content/teste.csv', index=None)
df

Veja que eu usei o read_json para ler a url e depois o df.to_csv para transformar o arquivo em csv, que provavelmente fique mais fácil de você manipular já que utilizamos csv em grande parte dos projetos de cursos na Alura, esse arquivo teste.csv eu salvei na pasta do Google Colab que eu estava usando, ou seja, se for salvar na sua máquina precisa colocar o caminho completo (inclusive o nome que quer que seu csv tenha :D).

Ele demora um tempinho pra salvar esse csv, mas acredito que vai ser mais fácil de você manipular depois os dados e ver melhor como dataframe.

Qualquer outra dúvida é só me chamar!

Ei, Sthefanie! Tudo bem comigo e com você? Obrigado pelo seu retorno! Eu fiz como disse e o arquivo .csv foi gerado. Acontece que quando tento abri-lo com o código:

df = pd.read_csv(r'C:\Users\usmei\Projetos Python\teste.csv')
df

as colunas estão vindo assim:

Output - arquivo csvQuando mantive 'index=None', ele deu erro, por isso o retirei do código.

Tenho percebido uma coisa com a API do yahoofinance e a do alpha, elas indexam pela data e quando eu desindexo, indexando por outra coluna, a data não aparece como coluna, mas some, além de algumas colunas ficarem totalmente desconfiguradas quando o sinal é negativo.