在使用Django進(jìn)行開發(fā)過程中,有時(shí)需要將web服務(wù)返回的json數(shù)據(jù)下載到本地進(jìn)行處理,這時(shí)候需要使用一些簡單的代碼來實(shí)現(xiàn)。下面是具體的實(shí)現(xiàn)過程。
首先,在views.py中編寫以下代碼:
import urllib.request import json def download_json(request): url = 'http://example.com/api/xxx' with urllib.request.urlopen(url) as response: data = json.loads(response.read().decode()) with open('data.json', 'w', encoding='utf-8') as f: json.dump(data, f, ensure_ascii=False) return HttpResponse('JSON數(shù)據(jù)已成功下載到本地!')
在這個(gè)代碼中,我們首先定義了一個(gè)URL,獲取json數(shù)據(jù)。然后,使用urllib.request.urlopen打開URL,使用json.loads將其轉(zhuǎn)化成Python字典,將其保存到變量data中。最后,使用json.dump將其保存到本地文件中。
最后,在urls.py中進(jìn)行相應(yīng)的URL設(shè)置:
from django.conf.urls import url from . import views urlpatterns = [ url(r'^download_json/$', views.download_json, name='download_json'), ]
通過在瀏覽器中輸入U(xiǎn)RL,就可以下載json數(shù)據(jù)到本地進(jìn)行處理。這個(gè)簡單的代碼實(shí)現(xiàn)能夠?yàn)槲覀冊趯?shí)際開發(fā)中帶來很多方便,值得參考。