Este tutorial mostra como é fácil usar a linguagem de programação Python para trabalhar com dados JSON.
Antes de começar o tópico, vamos definir brevemente o que queremos dizer com JSON. Vamos ver como o site principal do JSON o define:
JSON (JavaScript Object Notation) é um formato leve de intercâmbio de dados. É fácil para humanos ler e escrever. É fácil para as máquinas analisar e gerar. Ele é baseado em um subconjunto da JavaScript Programming Language, Standard ECMA-262 3rd Edition – December 1999. JSON é um formato de texto completamente independente de linguagem, mas usa convenções familiares aos programadores da família C de linguagens, incluindo C , C++, C#, Java, JavaScript, Perl, Python e muitos outros. Essas propriedades tornam o JSON uma linguagem de intercâmbio de dados ideal.
Assim, JSON é uma maneira simples de criar e armazenar estruturas de dados dentro do JavaScript. A razão pela qual você vê JavaScript na sigla é devido ao fato de que um objeto JavaScript é criado ao armazenar dados com JSON. Mas, não se preocupe, você não precisa saber JavaScript para trabalhar com arquivos JSON, mas sim sobre a própria sintaxe JSON (formato).
Resumidamente, JSON é uma forma pela qual armazenamos e trocamos dados, o que é feito por meio de sua sintaxe e é usado em muitas aplicações web. O legal do JSON é que ele possui um formato legível por humanos, e esse pode ser um dos motivos para usá-lo na transmissão de dados, além de sua eficácia ao trabalhar com APIs.
Um exemplo de dados formatados em JSON é o seguinte:
{"name": "Frank", "age": 39, "isEmployed": true}
Neste tutorial, mostrarei como usar o Python para trabalhar com arquivos JSON. Então vamos começar!
Python e JSON
O Python simplifica o trabalho com arquivos JSON. O módulo utilizado para este fim é o json
módulo. Este módulo deve ser incluído (incorporado) em sua instalação do Python e, portanto, você não precisa instalar nenhum módulo externo como fizemos ao trabalhar com arquivos PDF e Excel, por exemplo. A única coisa que você precisa para usar este módulo é importá-lo:
import json
Mas, o que o json
biblioteca faz? Esta biblioteca analisa principalmente JSON de arquivos ou strings. Ele também analisa JSON em um dicionário ou lista em Python e vice-versa, que está convertendo um dicionário ou lista Python em strings JSON.
JSON para Python
Ler JSON significa converter JSON em um valor Python (objeto). Como mencionado acima, o json
biblioteca analisa JSON em um dicionário ou lista em Python. Para isso, utilizamos o loads()
função (carregar de uma string), como segue:
import json jsonData="{"name": "Frank", "age": 39}" jsonToPython = json.loads(jsonData)
Se você quiser ver a saída, faça um print jsonToPython
nesse caso você obterá a seguinte saída:
{u'age': 39, u'name': u'Frank'}
Ou seja, os dados são retornados como um dicionário Python (estrutura de dados do objeto JSON). Então, a declaração print jsonToPython['name']
retornar alguma saída? Vá em frente, experimente.
Python para JSON
Na seção anterior, vimos como converter JSON em um valor Python (ou seja, Dicionário). Nesta seção, mostrarei como podemos converter (codificar) um valor Python em JSON.
Digamos que temos o seguinte Dicionário em Python:
import json pythonDictionary = {'name':'Bob', 'age':44, 'isEmployed':True} dictionaryToJson = json.dumps(pythonDictionary)
Se nós print dictionaryToJson
obtemos os seguintes dados JSON:
{"age": 44, "isEmployed": true, "name": "Bob"}
Portanto, esta saída é considerada a representação de dados do objeto (Dicionário). O método dumps()
foi a chave para tal operação.
É importante observar neste ponto que o JSON não pode armazenar todos os tipos de objetos Python, mas apenas os seguintes tipos: Listas; Dicionários; Booleanos; Números; Cadeias de caracteres; e Nenhum. Assim, quaisquer outros tipos precisam ser convertidos para serem armazenados em JSON.
Digamos que temos a seguinte classe:
class Employee(object): def __init__(self, name): self.name = name
Digamos que criamos um novo objeto abder
do seguinte modo:
abder = Employee('Abder')
E se quiséssemos converter esse objeto em JSON? Aquilo é json.dumps(abder)
? Nesse caso, você receberia um erro semelhante ao seguinte:
Traceback (most recent call last): File "test.py", line 8, inabderJson = json.dumps(abder) File "/usr/local/Cellar/python/2.7.10_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/__init__.py", line 243, in dumps return _default_encoder.encode(obj) File "/usr/local/Cellar/python/2.7.10_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/encoder.py", line 207, in encode chunks = self.iterencode(o, _one_shot=True) File "/usr/local/Cellar/python/2.7.10_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/encoder.py", line 270, in iterencode return _iterencode(o, 0) File "/usr/local/Cellar/python/2.7.10_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/encoder.py", line 184, in default raise TypeError(repr(o) + " is not JSON serializable") TypeError: <__main__.Employee object at 0x10e74b750> is not JSON serializable
Mas, existe uma solução alternativa? Felizmente existe. Eu gosto da solução descrita no site Python Tips. Para resolver esse problema, podemos definir um método semelhante ao seguinte:
def jsonDefault(object): return object.__dict__
Em seguida, codifique o objeto em JSON da seguinte maneira:
jsonAbder = json.dumps(abder, default=jsonDefault)
Se você print jsonAbder
você deve obter a seguinte saída:
{"name": "Abder"}
Agora codificamos um objeto Python (abder
) em JSON.
Conclusão
A partir deste tutorial, podemos notar que o Python está provando repetidamente não apenas sua capacidade de trabalhar com diferentes aplicativos, mas também sua flexibilidade para trabalhar com diferentes problemas ao trabalhar com um aplicativo, como vimos na última parte do tutorial.
Se você quiser saber mais sobre o json
módulo, você pode visitar a página de documentação.
Aprenda JavaScript: o guia completo
Criamos um guia completo para ajudá-lo a aprender JavaScript, quer você esteja apenas começando como desenvolvedor da Web ou queira explorar tópicos mais avançados.
Aprenda Python
Aprenda Python com nosso guia tutorial completo sobre Python, seja você apenas começando ou um programador experiente procurando aprender novas habilidades.
Originally posted 2022-07-01 10:07:22.