Python
JSON yanıtı
await resp.json() ile JSON yanıtı öğrenirsin.
Yapısal veri yanıtı
Bir HTTP yanıtı genellikle yapısal veri biçiminde gelir. Yanıt gövdesini önce await resp.text() ile dize olarak alır, sonra json.loads ile sözlüğe çevirirsin.
import json
text = await resp.text()
data = json.loads(text)
print(data["ad"])
Bu iki adımlı yaklaşım, hem gövdeyi denetlemeye olanak verir hem de yapısal veriyi güvenli biçimde ayrıştırır. Yapısal veri modülü standart kütüphanededir.
await resp.text
await resp.text() yanıt gövdesini bir dize olarak döndürür. Bu, yapısal veriyi ayrıştırmadan önce ham gövdeyi görmek istediğinde yararlıdır.
async with session.get(url) as resp:
text = await resp.text()
print(text) # ham gövde
Büyük gövdelerede await resp.read() bayt olarak okur; daha sonra .decode() ile dizeye çevirirsin. İki yöntem de gövdeyi yalnızca bir kez okur.
Uygulama Yanıttan yapısal veri oku
import asyncio, import aiohttp ve import json ile başla. async def main() içinde async with aiohttp.ClientSession() as session: aç. async with session.get("https://example.com") as resp: ile GET isteği yap. text = await resp.text() ile gövdeyi al. data = json.loads(text) ile sözlüğe çevir. print(data["ad"]) ile adı yazdır. asyncio.run(main()) ekle.
Örnek çözümü göster
import asyncio
import aiohttp
import json
class _S:
async def __aenter__(self): return self
async def __aexit__(self, *a): return False
def get(self, url): return self
async def text(self): return '{"ad": "Ayşe"}'
aiohttp.ClientSession = _S
async def main():
async with aiohttp.ClientSession() as session:
async with session.get('https://example.com') as resp:
text = await resp.text()
data = json.loads(text)
print(data['ad'])
asyncio.run(main())
Kendini test et
-
json.loads çağrısını tamamla
import json
text = '{"ad": "Ayşe"}'
data = json.____(text)
Cevabı göster
import json
text = '{"ad": "Ayşe"}'
data = json.loads(text)
-
Yapısal veriyi dizeden sözlüğe çeviren fonksiyon hangisi?
- json.dump
- json.load
- json.dumps
- json.loads
Cevabı göster
json.loads — json.loads(dize) bir dizeyi sözlüğe çevirir.
-
yapısal veri kavramlarını eşleştir
- await resp.text
- Gövdeyi dize verir
- json.loads
- Dizeyi sözlüğe çevirir
- import json
- Modülü içe aktarır
- data['ad']
- Sözlükten değer alır
Sıradaki ders: Özet - HTTP ve aiohttp