JSON Python: ler, escrever, analisar JSON (com exemplos)

Neste tutorial, você aprenderá a analisar, ler e escrever JSON em Python com a ajuda de exemplos. Além disso, você aprenderá a converter JSON em dict e a imprimi-lo de maneira bonita.

JSON ( J ava S cript O bject N otation ) é um formato de dados popular usado para representar dados estruturados. É comum transmitir e receber dados entre um servidor e um aplicativo da web no formato JSON.

Em Python, JSON existe como uma string. Por exemplo:

 p = '("name": "Bob", "languages": ("Python", "Java"))' 

Também é comum armazenar um objeto JSON em um arquivo.

Módulo de importação json

Para trabalhar com JSON (string ou arquivo contendo objeto JSON), você pode usar o jsonmódulo do Python . Você precisa importar o módulo antes de usá-lo.

 import json

Analisar JSON em Python

O jsonmódulo facilita a análise de strings JSON e arquivos contendo objetos JSON.

Exemplo 1: Python JSON para dict

Você pode analisar uma string JSON usando o json.loads()método. O método retorna um dicionário.

 import json person = '("name": "Bob", "languages": ("English", "Fench"))' person_dict = json.loads(person) # Output: ('name': 'Bob', 'languages': ('English', 'Fench')) print( person_dict) # Output: ('English', 'French') print(person_dict('languages'))

Aqui, pessoa é uma string JSON e pessoa_dict é um dicionário.

Exemplo 2: arquivo JSON de leitura em Python

Você pode usar o json.load()método para ler um arquivo que contém o objeto JSON.

Suponha que você tenha um arquivo denominado person.jsonque contém um objeto JSON.

  ("name": "Bob", "languages": ("English", "Fench") ) 

Veja como você pode analisar este arquivo:

  import json with open('path_to_file/person.json') as f: data = json.load(f) # Output: ('name': 'Bob', 'languages': ('English', 'Fench')) print(data) 

Aqui, usamos a open()função para ler o arquivo json. Em seguida, o arquivo é analisado usando um json.load()método que nos dá um dicionário chamado data.

Se você não sabe como ler e escrever arquivos em Python, recomendamos que verifique a E / S de arquivos Python.

Python Converter para string JSON

Você pode converter um dicionário em string JSON usando o json.dumps()método.

Exemplo 3: converter dict para JSON

  import json person_dict = ('name': 'Bob', 'age': 12, 'children': None ) person_json = json.dumps(person_dict) # Output: ("name": "Bob", "age": 12, "children": null) print(person_json) 

Aqui está uma tabela que mostra objetos Python e sua conversão equivalente para JSON.

Pitão JSON Equivalent
dict objeto
list, tuple matriz
str corda
int, float,int número
True verdade
False falso
None nulo

Gravando JSON em um arquivo

Para escrever JSON em um arquivo em Python, podemos usar o json.dump()método.

Exemplo 4: Gravando JSON em um arquivo

  import json person_dict = ("name": "Bob", "languages": ("English", "Fench"), "married": True, "age": 32 ) with open('person.txt', 'w') as json_file: json.dump(person_dict, json_file) 

No programa acima, abrimos um arquivo chamado person.txtno modo de escrita usando 'w'. Se o arquivo ainda não existir, ele será criado. Em seguida, se json.dump()transforma person_dictem uma string JSON que será salva no person.txtarquivo.

Ao executar o programa, o person.txtarquivo será criado. O arquivo contém o seguinte texto.

 ("name": "Bob", "languages": ("English", "Fench"), "married": true, "age": 32)

JSON de impressão bonita em Python

Para analisar e depurar dados JSON, pode ser necessário imprimi-los em um formato mais legível. Isso pode ser feito passando parâmetros adicionais indente sort_keyspara json.dumps()e json.dump()método.

Exemplo 5: JSON de impressão bonita em Python

  import json person_string = '("name": "Bob", "languages": "English", "numbers": (2, 1.6, null))' # Getting dictionary person_dict = json.loads(person_string) # Pretty Printing JSON string back print(json.dumps(person_dict, indent = 4, sort_keys=True)) 

Quando você executa o programa, a saída será:

 ("idiomas": "Inglês", "nome": "Bob", "números": (2, 1,6, nulo)) 

No programa acima, usamos 4espaços para indentação. E as chaves são classificadas em ordem crescente.

A propósito, o valor padrão de indent é None. E, o valor padrão de sort_keys é False.

Leituras recomendadas:

  • Python JSON para CSV e vice-versa
  • Python XML para JSON e vice-versa
  • Python simplejson

Artigos interessantes...