O arquivo JSON (JavaScript Object Notation) é um meio muito popular para o intercâmbio de dados entre diferentes formatos. Ele contém dados em formato de texto que são suportados por várias linguagens como Python, PHP, PERL, etc. O principal objetivo do arquivo JSON é transferir dados entre o servidor e o cliente. As solicitações são geradas pelo Python para recuperar os dados de um determinado URI de recurso. Se a resposta da solicitação for retornada no formato JSON, o conteúdo da resposta pode ser recuperado usando a resposta.função json (). Ele retorna a resposta usando um objeto de dicionário Python. Como essa função pode ser usada para analisar a resposta JSON usando a biblioteca de solicitações Python será mostrado neste tutorial.
Resposta JSON:
O módulo de solicitação do Python contém o decodificador JSON para trabalhar com os dados JSON. A resposta.A função json () retorna uma resposta JSON se o decodificador JSON funcionar corretamente. A resposta.A função json () gera a exceção se o decodificador JSON falhar e a resposta JSON não contiver dados ou dados inválidos. O valor de retorno da resposta.função raise_for_status () ou a resposta.status_code deve ser verificado antes de executar a resposta.função json ().
Diferentes usos de resposta.json ():
Três usos diferentes da resposta.A função json () será mostrada nesta parte do tutorial.
Exemplo-1: uso simples de resposta.json ()
O simples uso da resposta.A função json () será exposta neste exemplo. A resposta para a solicitação get do URI, https: // api.github.com / é armazenado em uma variável chamada resposta. Em seguida, o valor da variável de resposta é verificado. Se a variável de resposta contiver qualquer resposta inválida, ela imprimirá uma mensagem de erro. Se a variável de resposta contém uma resposta válida que é o código de status da resposta e seu conteúdo, uma mensagem de sucesso será impressa.
# Módulo de solicitações de importaçãopedidos de importação
# Crie uma solicitação get
resposta = pedidos.get ('https: // api.github.com / ')
# Verifique a resposta
se a resposta:
# Imprima o código de status de resposta
print ('O código de status da resposta é% d'% resposta.status_code)
# Imprima o conteúdo JSON
print ('O conteúdo JSON é: \ n% s'% resposta.json ())
# Imprima a mensagem de sucesso
print ('\ nO pedido foi tratado com sucesso.')
senão:
# Imprime a mensagem de erro para a resposta inválida
imprimir ('Resposta inválida.')
Resultado:
A seguinte saída aparecerá após a execução do script acima.
Exemplo 2: Uso da resposta.json () com tratamento de exceção
A maneira de usar a resposta.A função json () com tratamento de exceção será mostrada neste exemplo. O módulo HttpError é importado com o módulo de solicitação no script para lidar com a exceção. Aqui, o endereço URI será obtido do usuário para usar as solicitações.função get (). A resposta desta solicitação será armazenada na variável de resposta. A seguir, resposta.A função raise_for_status () é usada para verificar a resposta da solicitação se ela é válida ou inválida. Se a resposta for inválida, então uma exceção será gerada e o código de qualquer bloco exceto será executado com base na exceção. Se a resposta for válida, o conteúdo da variável de resposta será iterado usando um loop for para imprimir os valores do dicionário em cada linha que contém os dados da resposta.
# Módulo de solicitações de importaçãopedidos de importação
# Import HTTPError para tratamento de exceções
de pedidos.exceções import HTTPError
# Defina o URI
uri = input ('Digite um URI válido: \ n')
# Imprimir mensagem em espera
imprimir ('Aguardando a resposta… \ n')
tentar:
# Crie uma solicitação get para ler o conteúdo de feeds do github
resposta = pedidos.obter (uri)
# Levante uma exceção se a resposta não for bem-sucedida
resposta.raise_for_status ()
# Leia o conteúdo JSON
jsonResponse = resposta.json ()
print ("O conteúdo JSON é: \ n")
# Leia e imprima cada par de valores-chave da resposta JSON
para chave, valor em jsonResponse.Itens():
imprimir (chave, ":", valor)
# Imprimir mensagem de erro para o erro HTTP
exceto HTTPError como http_err:
print ('Ocorreu um erro de HTTP:% s'% http_err)
# Imprimir mensagem de erro para o erro HTTP
exceto Exceção como erro:
print ('Ocorreu outro erro:% s'% err)
Resultado:
A seguinte saída aparecerá após a execução do script quando um valor URI inexistente for fornecido pelo usuário. Aqui, a exceção HTTPError foi gerada juntamente com a mensagem de erro correspondente.
A seguinte saída aparecerá após a execução do script, quando um valor de URI inválido for fornecido pelo usuário. Aqui, a outra exceção foi gerada com uma mensagem de erro correspondente.
A seguinte saída aparecerá após a execução do script, quando um valor de URI válido for fornecido pelo usuário. Aqui, o conteúdo JSON foi impresso corretamente.
Exemplo 3: Uso da resposta.json () com string de consulta
A maneira de usar a resposta.A função json () com string de consulta será mostrada neste exemplo. Aqui, os pedidos.A função get () usou um valor de string de consulta com o URI usando parâmetros. Ele irá pesquisar as entradas para a linguagem PERL nos repositórios fornecidos. Se a variável de resposta contiver uma resposta válida, o nome do repositório e a descrição serão impressos, caso contrário, haverá uma mensagem de erro.
# Módulo de solicitações de importaçãopedidos de importação
# Pesquisando no repositório do github usando string de consulta
resposta = pedidos.obter(
'https: // api.github.com / search / repositories ',
params = 'q': 'pedidos + idioma: perl',
)
# Verifique a resposta
se a resposta:
# Leia o conteúdo JSON
json_response = resposta.json ()
# Leia o item de repositório particular
repository = json_response ['items'] [0]
# Imprime o nome do repositório
imprimir ('Nome do repositório:% s'% repositório ["nome"])
# Imprima a descrição do repositório
imprimir ('Descrição do repositório:% s'% repositório ["descrição"])
senão:
# Imprime a mensagem de erro para a resposta inválida
imprimir ('Resposta inválida.')
Resultado:
A seguinte saída aparecerá após a execução do script acima. O nome do repositório e a descrição para a linguagem PERL foram impressos aqui.
Conclusão:
Diferentes maneiras de enviar a solicitação para um determinado URI e ler a resposta usando a resposta.A função json () foi mostrada neste tutorial usando exemplos simples. Espero que este tutorial ajude os leitores a entender o uso da resposta JSON em Python e aplicá-la corretamente em seu script quando for necessário.