Curso Avançado de Desenvolvimento Python
Capítulo
>
Nível
Módulos de serialização
Módulo JSON
Objetivo
Vá até o posto de serviço e certifique-se de que os dados estão armazenados corretamente utilizando o módulo JSON para formatar os arquivos.
Existe um posto de serviço ao sul do prédio anexo, na nova área de construção; toda esta área será reurbanizada para o plantio de culturas. O posto possui uma variedade de terminais processando dados para o novo desenvolvimento. Podemos inserir os dados manualmente, mas isso levaria muito tempo. Para o processo de manipulação dos dados, podemos utilizar o JSON, que significa JavaScript Object Notation. Este é um formato de dados independente de linguagens de programação que armazena informações de forma facilmente legível para armazenamento e transmissão de dados.
Para utilizar JSON com Python, podemos usar import json, que nos dará acesso às funções do JSON. Para os nossos propósitos, usaremos as seguintes funções:
json.loads(): Converte uma string JSON em um dado Python. Recebe um argumento, que é a string que você deseja converter para Python.json.dumps(): Converte dados Python em um objeto string JSON. Esta função pode receber até quatro(4) argumentos, sendo o primeiro obrigatório. Eles são os seguintes:- Dados Python que você deseja converter em JSON: eles podem ser dos seguintes tipos de dados: dicionários, listas, tuplas, string, inteiro, float, booleano e None.
indent: número de espaços que você deseja adicionar no início de cada ponto de dados.separators: estas são as porções que você gostaria que aparecessem entre e/ou ao final dos pontos de dados.sort_keys: ordena as chaves do dicionário em ordem alfabética se você estiver convertendo um tipo de dado dicionário.
Para começar, dirija-se à marca X dourada no posto avançado à esquerda e encare a mesa com o memorando. Use a função read() para verificar as informações necessárias para confirmar o status do terminal e anote-as. Caminhe até a marca X clara em frente ao terminal; existe uma constante chamada transmission, use json.dumps() para formatá-la como um JSON para que possamos convertê-la, assim: transmission = json.dumps(transmission).
Crie um dicionário chamado load e armazene o valor de json.loads() passando a constante transmission como argumento. Isso converterá o JSON em Python para que suas informações possam ser acessadas facilmente. Use a função speak() com as chaves descritas no memorando, utilizando o dicionário load que você criou. Por exemplo: player.speak(load["system"]), faça isso para todas as chaves.
Após verificar as informações no terminal, caminhe em direção ao posto, entre e dirija-se à marca X clara sobre o carpete verde. Confira o memorando utilizando a função read(), verifique e anote os valores; no editor há um dicionário pré-escrito chamado profile, preencha os valores faltantes com as informações do memorando.
Caminhe até a marca X escura sobre o carpete verde, encare o terminal e crie uma variável chamada transfer armazenando o valor de json.dumps() com o dicionário profile como único argumento. Dessa forma, convertemos o dicionário em um objeto string JSON. Use a função pré-escrita display() e forneça o JSON transfer para armazenar os dados no terminal.
Caminhe até a marca X escura sobre o carpete vermelho e use a função read() para verificar os dados já inseridos no terminal. Os dados não estão apresentados em um formato adequado; para armazenar corretamente as informações, elas precisam ser armazenadas e formatadas em um JSON. Os dados estão armazenados em uma constante do tipo dicionário chamada red_data. Crie uma variável chamada red_storage e armazene o valor da função json.dumps().
Para formatar os dados, adicione os seguintes argumentos à função: passe red_data para converter a constante em JSON, adicione indent e defina-o como 5 para formatar o texto, adicione separators e defina-o como ("- ", " = ") para adicionar esses símbolos ao final de cada linha. A linha deverá ficar assim: red_storage = json.dumps(red_data, indent=5, separators=("- ", " = ")). Use a função pré-escrita display() e passe o JSON red_storage para armazenar e exibir os dados formatados.
Caminhe até a marca X escura sobre o carpete azul, encare o terminal e use a função read(). Assim como antes, os dados não estão armazenados corretamente e precisam ser formatados, mas também ordenados. Os dados estão armazenados em uma constante chamada blue_data. Crie uma variável chamada blue_storage e armazene o valor da função json.dumps().
Para os argumentos: adicione blue_data para converter a constante em JSON, adicione indent e defina-o como 4 para formatar o texto, adicione separators e defina-o como (".0", " = ") para adicionar esses símbolos ao final de cada linha. Além disso, adicione também o argumento sort_keys como argumento final e defina-o como True, assim: sort_keys=True. Use a função pré-escrita display() e passe o JSON blue_storage para armazenar e exibir os dados ordenados, completando o nível.