Olá, Arthur! Tudo bem?
Sei bem o quão estressante é quando não conseguimos resolver um problema no código, passei por perrengues parecidos em projetos e trabalhos da faculdade.
Mas, voltando ao erro UnicodeEncodeError: 'charmap' codec can't encode character '\u03a1'
ele indica que há um problema ao tentar codificar um caractere Unicode específico que não está presente no mapeamento de caracteres padrão do codec 'charmap'.
Isso geralmente acontece quando você está tentando imprimir ou salvar dados que contêm caracteres especiais. Para resolver esse problema, você pode tentar mudar o codec de codificação para 'utf-8', que é mais abrangente e pode lidar com uma ampla gama de caracteres Unicode.
Aqui está um exemplo de como você pode fazer isso:
import requests
import json
response = requests.get('URL_DA_API_AQUI')
if response.status_code == 200:
dados_json = response.json()
dados_restaurante = {}
for item in dados_json:
nome_do_restaurante = item['Company']
if nome_do_restaurante not in dados_restaurante:
dados_restaurante[nome_do_restaurante] = []
dados_restaurante[nome_do_restaurante].append({
"item": item['Item'],
"price": item['price'],
"description": item['description']
})
# Salvando os dados em um arquivo JSON com codificação utf-8
with open('dados_restaurante.json', 'w', encoding='utf-8') as f:
json.dump(dados_restaurante, f, ensure_ascii=False, indent=4)
print(dados_restaurante['McDonald’s'])
Nesse exemplo, ao salvar os dados no arquivo JSON, usamos encoding='utf-8'
para garantir que todos os caracteres sejam codificados corretamente. Além disso, ensure_ascii=False
no json.dump
ajuda a manter os caracteres Unicode no arquivo JSON.
Caso isso não resolva o seu problema, recomendo que compartilhe comigo todo o seu projeto, usando o GitHub ou Drive do Google. Assim poderei fazer testes para identificar o que está causando essa situação.
Espero ter ajudado e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.