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 |