JSON
Definição
- JSON (JavaScript Object Notation) é texto escrito com a notação de objeto do JavaScript.
- JSON é uma sintaxe para armazenamento e transferência de dados.
- JSON é independente de linguagem.
- Python tem um pacote embutido chamado json.
- Os objetos Python são convertidos para JSON (JavaScript) de acordo com a tabela abaixo.
Python | JSON |
dict | Object |
list | Array |
tuple | Array |
str | String |
int | Number |
float | Number |
True | true |
False | false |
None | null |
Métodos
São exemplos de métodos da biblioteca JSON:
- loads() – Converte uma string JSON em um objeto PYTHON dicionário.
- dumps() – Converte de Python para JSON (codificação de objetos PYTHON)
Exemplos
- Exemplo: Converte uma string JSON para um dicionário Python.
import json # Formato JSON x = '{ "nome": "Maria Flor", "matricula": "20182210030" }' print("x:", x, ", tipo:", type(x)) # Converte JSON para Python (dicionário) y = json.loads(x) print("y:", y, ", tipo:", type(y)) print("nome = ", y["nome"], ", matrícula = ", y["matricula"])
A saída do programa é:
x: { "nome": "Maria Flor", "matricula": "20182210030" } , tipo: <class 'str'> y: {'nome': 'Maria Flor', 'matricula': '20182210030'} , tipo: <class 'dict'> nome = Maria Flor , matrícula = 20182210030
- Exemplo: Converte um dicionário Python para um objeto JSON.
import json # Um dicionário Python x = { "nome": "Maria Flor", "matricula": "20182210030" } # Converte para JSON y = json.dumps(x) print("x:", x, "type:", type(x)) print("y:", y, "type:", type(y))
Abaixo o resultado do programa.
x: {'nome': 'Maria Flor', 'matricula': '20182210030'} type: <class 'dict'> y: {"nome": "Maria Flor", "matricula": "20182210030"} type: <class 'str'>
Considere que
x = ["abc", 45, 31, "teste"]
A reposta do programa é
x: ['abc', 45, 31, 'teste'] type: <class 'list'> y: ["abc", 45, 31, "teste"] type: <class 'str'>
- Exemplo: Converte string, tupla, número inteiro, número real, boleano True, booleano False e valor None para JSON.
import json print(json.dumps("BSI/UNIRIO")) print(json.dumps((12,"abc", 3.21))) print(json.dumps(35)) print(json.dumps(23.8976)) print(json.dumps(True)) print(json.dumps(False)) print(json.dumps(None))
A resposta do programa confirma a tabela apresentada no início da página.
"BSI/UNIRIO" [12, "abc", 3.21] 35 23.8976 true false null
- Exemplo: Converte um dicionário Python para um objeto JSON, sorteia as chaves em ordem crescente e faz indentação de 3 espaços a cada nível.
import json # Um dicionário Python x = { "nome": "Maria Flor", "matricula": "20182210030", "curso": "BSI", "disciplinas": [{"TP1": 8.7, "DPW": 10}, {"CRA": 9.35}]} # Converte para JSON y = json.dumps(x, indent=3, sort_keys=True) print(y)
A saída é:
{ "curso": "BSI", "disciplinas": [ { "DPW": 10, "TP1": 8.7 }, { "CRA": 9.35 } ], "matricula": "20182210030", "nome": "Maria Flor" }