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"
}
