| title | Módulo JSON em Python - Folha de Dicas Python |
|---|---|
| description | Python possui o módulo json integrado, que permite trabalhar com dados JSON (JavaScript Object Notation). |
JSON significa JavaScript Object Notation e é um formato leve para armazenar e transportar dados. JSON é frequentemente usado quando dados são enviados de um servidor para uma página web.
Python tem o módulo embutido json, que nos permite trabalhar com dados JSON.
import jsonUm objeto JSON é semelhante a um dicionário Python, mas tem as seguintes diferenças:
- As Chaves JSON são sempre strings.
- Strings estão sempre entre aspas duplas.
- Um booleano JSON começa com letras minúsculas.
nullé o equivalente JSON doNonedo Python.
Os tipos de dados que o JSON suporta são:
- String
- Number
- boolean
- null
- Object
- Array
Exemplo:
{
"name": "Charles",
"age": 33,
"has_hair": false,
"hobbies": ["photography", "running"],
"appearance": {
"eyes": "brown",
"hair_color": null
}
}Com o método json.loads, você pode analisar um objeto JSON e transformá-lo em um dicionário Python:
import json
# String JSON para analisar
json_person = '{"name": "Charles", "age": 33, "has_hair": false, "hobbies": ["photography", "running"]}'
# Analisa a string JSON em um dicionário Python
python_person = json.loads(json_person)
python_person{'name': 'Charles', 'age': 33, 'has_hair': False, 'hobbies': ['photography', 'running']}
type(python_person)<class 'dict'>
# Acessa o valor do dicionário usando o método get
python_person.get("name")'Charles'
O caminho inverso. O método dumps() transforma um objeto Python em uma string JSON:
import json
# Dicionário Python para converter
python_person = {'name': 'Charles', 'age': 33, 'has_hair': False, 'hobbies': ['photography', 'running']}
# Converte o objeto Python em uma string JSON
json_person = json.dumps(python_person)
json_person'{"name": "Charles", "age": 33, "has_hair": false, "hobbies": ["photography", "running"]}'
type(json_person)<class 'str'>
import json
# Lê o arquivo JSON
with open("filename.json", "r") as f:
json_content = json.loads(f.read())
# Nota: Esta linha parece redundante - json_content já está analisado
json.loads(json_content){'name': 'Charles', 'age': 33, 'has_hair': False}
import json
person = {'name': 'Charles', 'age': 33}
# Escreve o dicionário Python no arquivo JSON
with open("filename.json", "w") as f:
f.write(json.dumps(person))- Cheatsheet: JSON e YAML
- Cheatsheet: Dicionários
- Cheatsheet: Leitura e Escrita de Arquivos
- Blog: Tipos de Dados Python
- dict()
- str()
- open()