Tutoriais

Como Escrever Dados JSON em um Arquivo em Python

Ana Maria Gomes 15 jun Intermediário 5xp
Compartilhar

Ao trabalhar com dados JSON em Python, você pode se deparar com a situação em que precisa salvar esses dados em um arquivo. Essa é uma tarefa comum, especialmente quando lidamos com a persistência de dados ou a troca de dados entre diferentes sistemas. Neste artigo, vamos explorar como escrever dados JSON em um arquivo usando Python.

Escrevendo Dados JSON em um Arquivo

JSON (JavaScript Object Notation) é um formato leve de troca de dados que é fácil de ler e escrever por humanos, e fácil de ser interpretado e gerado por máquinas. Python fornece um módulo integrado chamado json que pode ser usado para trabalhar com dados JSON.

Aqui está uma maneira simples de escrever dados JSON em um arquivo:

import json

# Suponha que 'data' seja um dicionário contendo nossos dados JSON
data = {
    'nome': 'John Doe',
    'idade': 30,
    'é_estudante': False
}

# Escrevendo dados JSON em um arquivo
with open('data.json', 'w') as f:
    json.dump(data, f)

A instrução with garante que o arquivo seja fechado adequadamente após a finalização do bloco, mesmo que ocorra um erro. A função json.dump() recebe dois argumentos: os dados a serem serializados e o objeto semelhante a arquivo para o qual os bytes serão escritos.

Garantindo a Codificação UTF-8

Para garantir que o arquivo seja escrito com a codificação UTF-8, que é a codificação padrão para JSON, você pode especificar a codificação ao abrir o arquivo:

import json

with open('data.json', 'w', encoding='utf-8') as f:
    json.dump(data, f, ensure_ascii=False)

Isso é particularmente importante se seus dados contêm caracteres não ASCII.

Escrevendo JSON de Forma Legível

Para melhor legibilidade, você pode querer escrever os dados JSON de forma legível, com chaves ordenadas e indentadas com 4 espaços:

import json

with open('data.json', 'w', encoding='utf-8') as f:
    json.dump(data, f, sort_keys=True, indent=4, ensure_ascii=False)

Isso produzirá um arquivo que é mais fácil de ser lido por humanos e é útil quando você precisa inspecionar manualmente os dados JSON.

Compatibilidade com Python 2

Se você precisa garantir compatibilidade com Python 2, pode usar o módulo io para lidar com a codificação:

import io
import json

with io.open('data.json', 'w', encoding='utf-8') as f:
    f.write(json.dumps(data, ensure_ascii=False))

No entanto, se você está trabalhando com Python 3, o primeiro exemplo fornecido funcionará perfeitamente.

Resumo

Neste artigo, aprendemos como escrever dados JSON em um arquivo em Python. Cobrimos o método básico usando o módulo json, como garantir a codificação UTF-8 e como escrever JSON de forma legível para melhor leitura. Lembre-se de usar json.dump() para serializar seus dados e escrevê-los em um arquivo, e considere usar ensure_ascii=False e indent=4 para tornar seus arquivos JSON mais legíveis. Com essas técnicas, você pode facilmente lidar com dados JSON em suas aplicações Python.

Cursos gratuitos para continuar aprendendo

Curso
Grátis · 2h 13min

Python para iniciantes: do zero ao primeiro projeto

Aprenda sobre variáveis, loops e funções e crie seu primeiro projeto Python em apenas 2 horas!

Curso
Grátis · 3h 47min

Python para dados: do zero à análise completa

Saia do zero e analise dados com Python e Pandas neste curso gratuito com certificado!

Curso
Grátis · 4h 11min

Python para IA: do zero ao primeiro chatbot

Aprenda a programar com Python e explore a inteligência artificial! Crie um chatbot prático que interage com seus próprios dados. Comece agora!

Ver todos os cursos

1 comentário

Exclusivo PRO
Faça parte da discussão

Comente e participe da conversa

Crie sua conta gratuita e compartilhe sua opinião nos comentários.

Entre para a Asimov
Avatar de Douglas G. Carvalho
Douglas G. Carvalho há 11 meses
Olá, Ana Maria Gomes! Espero que esteja bem ao encontrar meu comentário. Tenho como dúvida a velocidade de leitura de dados entre um banco de dados e um arquivo JSON. Qual seria mais rápido?
Avatar de Heitor Tasso
Heitor Tasso Instrutor há 11 meses

Oi Douglas, em geral o banco de dados é mais rápido e eficiente, principalmente quando o volume de dados cresce e você precisa de consultas otimizadas. O JSON costuma ser mais útil para troca de informações ou armazenamento simples, mas não tem a mesma performance em leitura e busca. Qualquer dúvida a mais é só falar 🚀