Menyelesaikan Masalah Muat Turun Imej dengan Modul Permintaan
Soalan:
Semasa cuba memuat turun imej menggunakan modul Permintaan dalam Python, kod di bawah gagal:
r = requests.get(settings.STATICMAP_URL.format(**data)) if r.status_code == 200: img = r.raw.read() with open(path, 'w') as f: f.write(img)
Bolehkah anda membantu mengenal pasti isu dan mencadangkan penyelesaian?
Jawapan:
Untuk memuat turun imej menggunakan modul Permintaan , anda boleh menggunakan sama ada objek fail response.raw atau lelaran atas respons. Berikut ialah pendekatan:
Menggunakan response.raw:
import requests import shutil r = requests.get(settings.STATICMAP_URL.format(**data), stream=True) if r.status_code == 200: with open(path, 'wb') as f: r.raw.decode_content = True shutil.copyfileobj(r.raw, f)
Pendekatan ini memaksa penyahmampatan respons termampat dan menggunakan shutil.copyfileobj() untuk menstrim data ke objek fail.
Lelaran Berakhir Respons:
r = requests.get(settings.STATICMAP_URL.format(**data), stream=True) if r.status_code == 200: with open(path, 'wb') as f: for chunk in r: f.write(chunk)
Pendekatan ini memastikan data dinyahmampat dan membaca data dalam ketulan 128 bait. Anda boleh menyesuaikan saiz ketulan menggunakan kaedah Response.iter_content().
Nota Tambahan:
Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Isu Muat Turun Imej Menggunakan Modul Permintaan Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!