Python

Създайте JSON отговор в Python

Създайте JSON отговор в Python

JSON (JavaScript Object Notation) файл е много популярен носител за обмен на данни между различни формати. Той съдържа данни в текстов формат, който се поддържа от различни езици като Python, PHP, PERL и др. Основната цел на JSON файла е да прехвърля данни между сървъра и клиента. Заявките се генерират от Python за извличане на данните от определен URI на ресурса. Ако отговорът на заявката се върне във формат JSON, тогава съдържанието на отговора може да бъде извлечено с помощта на отговора.json () функция. Той връща отговора, като използва обект на речника на Python. Как тази функция може да се използва за анализ на JSON отговора с помощта на библиотеката за заявки на Python ще бъде показано в този урок.

JSON отговор:

Модулът за заявка на Python съдържа декодера JSON за работа с данните JSON. Отговорът.Функцията json () връща JSON отговор, ако декодерът JSON работи правилно. Отговорът.json () функция създава изключение, ако декодерът JSON се провали и JSON отговорът не съдържа никакви данни или невалидни данни. Връщаната стойност на отговора.функция повишаване_за_статус () или отговор.status_code се изисква да бъде проверен преди изпълнението на отговора.json () функция.

Различни приложения на отговора.json ():

Три различни приложения на отговора.json () функцията ще бъде показана в тази част на урока.

Пример-1: Лесно използване на отговора.json ()

Простото използване на отговора.json () функцията ще бъде изложена в този пример. Отговорът за заявката за получаване на URI, https: // api.github.com / се съхранява в променлива с име отговор. След това се проверява стойността на променливата за отговор. Ако променливата на отговора съдържа някакъв невалиден отговор, тя ще отпечата съобщение за грешка. Ако променливата на отговора съдържа валиден отговор, който е кодът на състоянието на отговора и неговото съдържание, ще се отпечата съобщение за успех.

# Модул за заявки за импортиране
заявки за внос
# Създайте заявка за получаване
отговор = заявки.get ('https: // api.github.com / ')
# Проверете отговора
ако отговор:
# Отпечатайте кода на състоянието на отговора
print ('Кодът на състоянието на отговора е% d'% отговор.код на състоянието)
# Отпечатайте съдържанието на JSON
print ('Съдържанието на JSON е: \ n% s'% отговор.json ())
# Отпечатайте съобщението за успех
print ('\ nЗаявката се обработва успешно.')
друго:
# Отпечатайте съобщението за грешка за невалиден отговор
print ('Невалиден отговор.')

Изход:

След изпълнението на горния скрипт ще се появи следният изход.

Пример-2: Използване на отговор.json () с обработка на изключения

Начинът на използване на отговора.json () функция с обработка на изключения ще бъде показана в този пример. Модулът HttpError се импортира с модула за заявка в скрипта, за да се справи с изключението. Тук URI адресът ще бъде взет от потребителя, за да използва заявките.get () функция. Отговорът на тази заявка ще се съхранява в променливата за отговор. След това отговор.Функцията raise_for_status () се използва за проверка на отговора на заявката дали е валидна или невалидна. Ако отговорът е невалиден, тогава ще бъде генерирано изключение и кодът на който и да е освен блок ще бъде изпълнен въз основа на изключението. Ако отговорът е валиден, тогава съдържанието на променливата на отговора ще бъде повторено с помощта на цикъл for, за да отпечата стойностите на речника във всеки ред, който съдържа данните за отговора.

# Модул за заявки за импортиране
заявки за внос
# Импортирайте HTTPError за обработка на изключения
от заявки.изключения импортиране на HTTPError
# Определете URI
uri = input ('Въведете валиден URI: \ n')
# Отпечатай чакащо съобщение
print ('В очакване на отговора ... \ n')
опитвам:
# Създайте заявка за получаване за четене на съдържанието на емисии на github
отговор = заявки.вземи (uri)
# Повишете изключение, ако отговорът е неуспешен
отговор.повишаване_за_статус ()
# Прочетете съдържанието на JSON
jsonResponse = отговор.json ()
print ("Съдържанието на JSON е: \ n")
# Прочетете и отпечатайте всяка двойка ключ-стойност от отговора JSON
за ключ, стойност в jsonResponse.елементи ():
печат (ключ, ":", стойност)
# Отпечатайте съобщение за грешка за HTTP грешка
с изключение на HTTPError като http_err:
print ('Възникна HTTP грешка:% s'% http_err)
# Отпечатайте съобщение за грешка за HTTP грешка
освен Изключение като грешка:
print ('Възникна друга грешка:% s'% грешка)

Изход:

Следният изход ще се появи след изпълнение на скрипта, когато потребителят ще предостави несъществуваща стойност на URI. Тук се генерира изключението HTTPError заедно със съответното съобщение за грешка.


Следният изход ще се появи след изпълнение на скрипта, когато потребителят предостави невалидна стойност на URI. Тук другото изключение беше генерирано със съответно съобщение за грешка.

Следният изход ще се появи след изпълнение на скрипта, когато потребителят предостави валидна стойност на URI. Тук съдържанието на JSON е отпечатано правилно.

Пример-3: Използване на отговор.json () с низ за заявка

Начинът на използване на отговора.json () функция с низ за заявка ще бъде показана в този пример. Ето, исканията.Функцията get () използва стойност на низа на заявка с URI, използвайки параметри. Той ще търси записите за езика PERL в дадените хранилища. Ако променливата на отговора съдържа валиден отговор, името и описанието на хранилището ще бъдат отпечатани, в противен случай ще се появи съобщение за грешка.

# Модул за заявки за импортиране
заявки за внос
# Търсене в хранилището на github с помощта на низ за заявки
отговор = заявки.вземи (
'https: // api.github.com / search / repositories ',
params = 'q': 'заявки + език: perl',
)
# Проверете отговора
ако отговор:
# Прочетете съдържанието на JSON
json_response = отговор.json ()
# Прочетете конкретния елемент на хранилището
хранилище = json_response ['елементи'] [0]
# Отпечатайте името на хранилището
print ('Име на хранилището:% s'% хранилище ["име"])
# Отпечатайте описанието на хранилището
print ('Описание на хранилището:% s'% хранилище ["описание"])
друго:
# Отпечатайте съобщението за грешка за невалиден отговор
print ('Невалиден отговор.')

Изход:

След изпълнението на горния скрипт ще се появи следният изход. Името на хранилището и описанието за езика PERL бяха отпечатани тук.

Заключение:

Различни начини да изпратите заявката до определен URI и да прочетете отговора, като използвате отговора.json () функцията беше показана в този урок, използвайки прости примери. Надявам се този урок да помогне на читателите да разберат използването на JSON отговора в Python и да го приложат правилно в своя скрипт, когато е необходимо.

Как да използвам AutoKey за автоматизиране на Linux игри
AutoKey е програма за автоматизация на настолни компютри за Linux и X11, програмирана в Python 3, GTK и Qt. Използвайки неговата функционалност за скр...
Как да покажа брояч на FPS в игрите на Linux
Linux игрите получиха голям тласък, когато Valve обяви поддръжка на Linux за Steam клиент и техните игри през 2012 г. Оттогава много AAA и независими ...
Как да изтеглите и пуснете Civilization VI на Сид Майер на Linux
Въведение в играта Civilization 6 е модерен поглед върху класическата концепция, въведена в поредицата от игрите Age of Empires. Идеята беше доста про...