Sobes.tech
Junior

Quais são as diferenças entre as funções json.dumps e json.dump, bem como json.loads e json.load?

sobes.tech IA

Resposta da IA

json.dumps (o s no final significa string) converte um objeto Python numa string no formato JSON.

json.dump converte um objeto Python numa string no formato JSON e grava-o num objeto semelhante a um ficheiro (por exemplo, um ficheiro) na localização especificada.

import json

dados = {'nome': 'Alice', 'idade': 30}

# json.dumps
string_json = json.dumps(dados, indent=4) # Converte o objeto numa string
print(string_json)

# json.dump
with open('output.json', 'w') as f:
    json.dump(dados, f, indent=4) # Grava o objeto num ficheiro

json.loads (mais uma vez, o s significa string) converte uma string no formato JSON de volta para um objeto Python.

json.load lê dados de um objeto semelhante a um ficheiro (por exemplo, um ficheiro) no formato JSON e os converte de volta para um objeto Python.

import json

string_json = '{"name": "Bob", "age": 25}'

# json.loads
objeto_python_de_string = json.loads(string_json) # Converte a string em objeto
print(objeto_python_de_string)

# json.load
with open('input.json', 'r') as f:
    objeto_python_de_ficheiro = json.load(f) # Lê do ficheiro e converte
print(objeto_python_de_ficheiro)

Tabela resumo das diferenças:

Função Dados de entrada Dados de saída Propósito principal
json.dumps Objeto Python String (formato JSON) Converter um objeto em uma string para transmissão/armazenamento
json.dump Objeto Python Escrita em objeto de ficheiro Converter um objeto e gravá-lo num ficheiro
json.loads String no formato JSON Objeto Python Analisar a string e convertê-la em um objeto
json.load Objeto de ficheiro Objeto Python Ler de um ficheiro e converter em um objeto