Você sabe ler e escrever arquivos JSON com Python?
JSON significa JavaScript Object Notation, este é um formato para estruturar dados muito semelhante ao conceito de mapas na programação de computadores. Os mapas consistem em chaves e valores correspondentes. Uma chave deve ser única dentro de um mapa.
JSON é um formato leve de representação de dados como texto em um arquivo, cuja sintaxe é emprestada da sintaxe usada para criar objetos JavaScript. Grandes dados são convertidos para o formato JSON para fácil processamento em várias linguagens de programação e transferência para outros nós. É o formato mais usado para solicitações e respostas ao trabalhar com chamadas de API.
Tipos de dados aceitos no formato JSON
As chaves JSON devem ser string. A maioria das linguagens convertem implicitamente qualquer outro tipo de dados em string. Os valores JSON podem ser string, booleanos, inteiros, reais, outro objeto JSON ou array JSON.
Veja a seguir um exemplo de arquivo JSON válido (data.json):
{
"nome": "Johny KLG",
"idade": 31,
"endereco": {
"rua": "Rua principal",
"numero": 10,
"cidade": "Montevideo",
"cep": 11000
},
"casado": true
}import json
with open("data.json") as f:
p = json.load(f)
print(p, type(p))
print(p["nome"], "é", "casado" if p["casado"] else "não é casado")Saída para o exemplo acima:{'nome': 'Johny KLG', 'idade': 31, 'endereco': {'rua': 'Rua principal', 'numero': 10, 'cidade': 'Montevideo', 'cep': 11000}, 'casado': true} <class 'dict'>
Johny KLG é casadoAqui f é o objeto de arquivo. json.load() retorna um Dictionary.
O trecho de código acima usa Python if else. Você pode obter informações adicionais nesse artigo que ensina: Exemplos de comandos if, if else e if elif no Pythonimport json
with open("data.json") as f:
file_data = f.read()
p = json.loads(file_data)
print(p, type(p))
print(p["nome"], "é", "casado" if p["casado"] else "não é casado")Saída para o exemplo acima:{'nome': 'Johny KLG', 'idade': 31, 'endereco': {'rua': 'Rua principal', 'numero': 10, 'cidade': 'Montevideo', 'cep': 11000}, 'casado': true} <class 'dict'>
Johny KLG é casado
import json
json_dict = {
"nome": "Johny KLG",
"idade": 31,
"endereco": {
"rua": "Rua principal",
"numero": 10,
"cidade": "Montevideo",
"cep": 11000
},
"casado": true
}
print("Type of json_dict:", type(json_dict))
with open("data.json", "w") as f:
json.dump(json_dict, f, indent=4)Saída para o exemplo acima:Type of json_dict: <class 'dict'>
data.json
{
"nome": "Johny KLG",
"idade": 31,
"endereco": {
"rua": "Rua principal",
"numero": 10,
"cidade": "Montevideo",
"cep": 11000
},
"casado": true
}import json
json_dict = {
"nome": "Johny KLG",
"idade": 31,
"endereco": {
"rua": "Rua principal",
"numero": 10,
"cidade": "Montevideo",
"cep": 11000
},
"casado": true
}
print("Type of json_dict:", type(json_dict))
with open("data.json", "w") as f:
v = json.dumps(json_dict)
print("v has value", v, "and is of type", type(v))
f.write(v)Saída para o exemplo acima:Type of json_dict: <class 'dict'>
v has value {"nome": "Johny KLG", "idade": 31, "endereco": {"rua": "Rua principal", "numero": 10, "cidade": "Montevideo", "cep": 11000}, "casado": true} and is of type <class 'str'>
data.json
{"nome": "Johny KLG", "idade": 31, "endereco": {"rua": "Rua principal", "numero": 10, "cidade": "Montevideo", "cep": 11000}, "casado": true}Observe que o arquivo data.json não está formatado. Isso ocorre porque o parâmetro “indent” foi omitido da função json.dumps().
Comentários
Postar um comentário