Pular para o conteúdo

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.
PythonJSON
dictObject
listArray
tupleArray
strString
intNumber
floatNumber
Truetrue
Falsefalse
Nonenull

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