• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

python test API

Object Storage Arubacloud
0 głosów
371 wizyt
pytanie zadane 26 października 2020 w Python przez lucyliu Początkujący (370 p.)

Cześć,

Muszę napisać pierwszy request API, potrzebuję wyświelić treść z Request Body. Przejrzałam cały Internet i wszędzie pokazują tę metodę, ale u mnie wyskakuje błąd z jsonem. 

import requests
import json

url = 'tutaj podaje odpowiedni adres'
response = requests.get(url)
print(response.status_code)
print(response.json())

200

Traceback (most recent call last):

 line 8, in <module> print(response.json()) File , line 898, in json return complexjson.loads(self.text, **kwargs) File  line 346, in loads return _default_decoder.decode(s)

 line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) 

line 355, in raw_decode raise JSONDecodeError("Expecting value", s, err.value) from None json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

2 odpowiedzi

0 głosów
odpowiedź 26 października 2020 przez Patryk Kaczmarek Użytkownik (630 p.)
Czesc, moim zdaniem zwracany obiekt nie jest walidnym jsonem.
komentarz 26 października 2020 przez lucyliu Początkujący (370 p.)
Potrzebuję zwrócić treść z Response Body
komentarz 26 października 2020 przez adrian17 Ekspert (344,860 p.)

Zgadzam się z Patrykiem.

Spróbuj najpierw zrobić 

print(response.text)
print(response.json())

I zobacz, czy `response.text` faktycznie wygląda jak poprawny JSON.

0 głosów
odpowiedź 26 października 2020 przez lucyliu Początkujący (370 p.)
Po użyciu print(response.text) wpisuje mi cały kod w htmlu

Przy print(response.json()) wyskakuje błąd
komentarz 26 października 2020 przez Patryk Kaczmarek Użytkownik (630 p.)
Jesli response.text zwraca html to znaczy, ze API zwraca htmla nie jsoa. Mozesz probowac parsowac html beautifulSOAP em np.

https://www.crummy.com/software/BeautifulSoup/bs4/doc/
komentarz 26 października 2020 przez lucyliu Początkujący (370 p.)
A może jest jakiś inny sposób by wypisać na konsoli zawartość Request Body?
komentarz 26 października 2020 przez Patryk Kaczmarek Użytkownik (630 p.)
Moim zdaniem przetworzenie resposne przy użyciu beautifulSOAPa i wydobycie z tego zawartości tagów <body></body> będzie najszybsza. Nie wiem co konkretnie chcesz zrobić. Możesz także poszukać, może strona ma również API jsonowe.
komentarz 26 października 2020 przez lucyliu Początkujący (370 p.)
Potrzebuje jedynie wypisać w konsoli wiadomość zawartą w Response Body, która ma treść:

{

"Message":"Autorization has been denies for this request."

}
komentarz 26 października 2020 przez Patryk Kaczmarek Użytkownik (630 p.)
Zapytam z innej beczki, robisz może request do własnego API?
komentarz 26 października 2020 przez lucyliu Początkujący (370 p.)
Tak. Ale robię to pierwszy raz.
komentarz 26 października 2020 przez Patryk Kaczmarek Użytkownik (630 p.)
Być może JsonResponse jest tym, czego potrzebujesz. Mam na myśli, że może twoje API powinno zwracać JsonResponse zamiast HttpResponse

https://docs.djangoproject.com/en/3.1/ref/request-response/#jsonresponse-objects

Podobne pytania

+1 głos
2 odpowiedzi 455 wizyt
pytanie zadane 12 listopada 2022 w Python przez Giacomo Nowicjusz (200 p.)
0 głosów
1 odpowiedź 151 wizyt
pytanie zadane 15 października 2023 w Algorytmy przez Mateusz Analityk Stary wyjadacz (13,710 p.)
0 głosów
1 odpowiedź 478 wizyt
pytanie zadane 15 września 2021 w PHP przez Grzegorz Mikina Dyskutant (8,060 p.)

92,568 zapytań

141,422 odpowiedzi

319,638 komentarzy

61,957 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...