Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

Inseri o script e não estabelece conexão

Não consigo inserir o script informado na aula. Não estabelece conexão de jeito nenhum...
Segue msg:

Detalhes: "ADO.NET: ΡУţнǿń śçгĭφţ ēґѓог.
Failed to get ticker 'SUZB3.SA' reason: Failed to perform, curl: (60) SSL certificate problem: unable to get local issuer certificate. See https://curl.se/libcurl/c/libcurl-errors.html first for more details.
Failed to get ticker 'GGBR4.SA' reason: Failed to perform, curl: (60) SSL certificate problem: unable to get local issuer certificate. See https://curl.se/libcurl/c/libcurl-errors.html first for more details.
Failed to get ticker 'ITSA4.SA' reason: Failed to perform, curl: (60) SSL certificate problem: unable to get local issuer certificate. See https://curl.se/libcurl/c/libcurl-errors.html first for more details.
$ITSA4.SA: possibly delisted; no timezone found

[ 0% ]Failed to get ticker 'RENT3.SA' reason: Failed to perform, curl: (60) SSL certificate problem: unable to get local issuer certificate. See https://curl.se/libcurl/c/libcurl-errors.html first for more details.
$RENT3.SA: possibly delisted; no timezone found

[********** 20% ] 2 of 10 completedFailed to get ticker 'ABEV3.SA' reason: Failed to perform, curl: (60) SSL certificate problem: unable to get local issuer certificate. See https://curl.se/libcurl/c/libcurl-errors.html first for more details.
$ABEV3.SA: possibly delisted; no timezone found

[************** 30% ] 3 of 10 completedFailed to get ticker 'VALE3.SA' reason: Failed to perform, curl: (60) SSL certificate problem: unable to get local issuer certificate. See https://curl.se/libcurl/c/libcurl-errors.html first for more details.
$VALE3.SA: possibly delisted; no timezone found

[******************* 40% ] 4 of 10 completedFailed to get ticker 'WEGE3.SA' reason: Failed to perform, curl: (60) SSL certificate problem: unable to get local issuer certificate. See https://curl.se/libcurl/c/libcurl-errors.html first for more details.
$WEGE3.SA: possibly delisted; no timezone found

[**********************50% ] 5 of 10 completedFailed to get ticker 'PETR4.SA' reason: Failed to perform, curl: (60) SSL certificate problem: unable to get local issuer certificate. See https://curl.se/libcurl/c/libcurl-errors.html first for more details.
$PETR4.SA: possibly delisted; no timezone found

[******************60% ] 6 of 10 completedFailed to get ticker 'B3SA3.SA' reason: Failed to perform, curl: (60) SSL certificate problem: unable to get local issuer certificate. See https://curl.se/libcurl/c/libcurl-errors.html first for more details.
$B3SA3.SA: possibly delisted; no timezone found

[*************70% ] 7 of 10 completedFailed to get ticker 'ELET3.SA' reason: Failed to perform, curl: (60) SSL certificate problem: unable to get local issuer certificate. See https://curl.se/libcurl/c/libcurl-errors.html first for more details.
$ELET3.SA: possibly delisted; no timezone found

[*********80% ] 8 of 10 completed
[**90% ] 9 of 10 completed
[100%
] 10 of 10 completed

10 Failed downloads:
['ITSA4.SA', 'RENT3.SA', 'ABEV3.SA', 'VALE3.SA', 'WEGE3.SA', 'PETR4.SA', 'B3SA3.SA', 'ELET3.SA']: possibly delisted; no timezone found
['SUZB3.SA', 'GGBR4.SA']: CertificateVerifyError('Failed to perform, curl: (60) SSL certificate problem: unable to get local issuer certificate. See https://curl.se/libcurl/c/libcurl-errors.html first for more details.')
KeyError: "['Date'] not in index"
"

1 resposta

Ei, Meline! Tudo bem?

O aviso SSL certificate problem: unable to get local issuer certificate é sobre o Python, ao rodar por dentro do Power BI, não está conseguindo validar o certificado de segurança (SSL) da API do Yahoo Finance para baixar os dados. Isso acontece muito em redes corporativas ou por desatualização dos certificados.

Recomendo que atualize o seu script com um código que vai desabilitar temporiamente a verificação SSL no início do seu código. Então execute o script abaixo:

# Importando as bibliotecas
import yfinance as yf
import ssl

# Desabilitando a verificação de certificado SSL para permitir a conexão
ssl._create_default_https_context = ssl._create_unverified_context

# Definindo a carteira de ações
carteira_yf = ['ABEV3.SA', 'B3SA3.SA', 'ELET3.SA', 'GGBR4.SA', 'ITSA4.SA',
               'PETR4.SA', 'RENT3.SA', 'SUZB3.SA', 'VALE3.SA', 'WEGE3.SA']

# Carregando os dados da carteira
df = yf.download(carteira_yf, start="2022-08-01", end="2023-08-01")

# Passando os ativos para o multindex do df
cotacoes = df.stack(level=1)

# Resetando os índices e renomenado a coluna dos ativos
cotacoes = cotacoes.reset_index().rename(columns={'level_1': 'Ativo'})

# Organizando o df
cotacoes = cotacoes[["Date", "Open", "High", "Low", "Close", "Ativo"]]

del carteira_yf, df

O código que adicionamos para desabilitar a verificação de certificado SSL foi:

ssl._create_default_https_context = ssl._create_unverified_context

Apos inserir o script completo tente conectar novamente. Espero que dê certinho e qualquer dúvida, compartilhe conosco.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado