這一篇博客的目的主要是想說明一個問題:干什么事情要抓住重點,不要力求完美,不要追求那種'大而全'的辦事方式,因為時間是有限的,而客觀事物(這里主要指技術方面的知識)是無限的,so,anyway!
1.json.dumps()函數是將字典轉化為字符串
import json
dict1 = {"age": "12"}
json_info = json.dumps(dict1) json_info此時就被轉換成一個字符串了
2.json.loads()函數是將字符串轉化為字典
json_info = '{"age": "12"}'
dict1 = json.loads(json_info) dict1由字符串被轉換為一個字典
3.json.dump()函數的使用,將json信息寫進文件
import json
json_msg = {"install": {"install_date": "2018/09/26","install_result": "success"}}
file = open('1.json', 'w')
json.dump(json_msg, file)
4.json.load()函數的使用,將讀取json信息
file = open('1.json','r',encoding='utf-8')
info = json.load(file)
with open('1.json', 'r') as f:
data = json.load(f)
還是用第二種比較好,不用手動去關文件了
5.但是這樣講個知識點比較干癟,實際應用如下:
客戶端要向服務器端發送一個json字符串,服務器端要接收並處理。下面演示正確的代碼:
import json
with open('1.json', 'r') as f:
data = json.load(f)
data = {"company_data": json.dumps(data)}
# urlopen()的data參數默認為None,當data參數不為空的時候,urlopen()提交方式為Post
from urllib import request, parse
url = r'http://192.168.165.4:8000/show/report/'
company_data = parse.urlencode(data).encode('utf-8')
req = request.Request(url, data=company_data)
print(company_data)
page = request.urlopen(req).read()
page = page.decode('utf-8')
print('page是什么', page, type(page))
接收的話,下面的代碼只是接收並打印,並沒有進行一系列的判斷然后去入庫之類的,因為我還沒做:
def receive_data(request):
if request.method == 'POST':
print(request.get_full_path())
print(request.body)
data = request.POST.get("company_data")
if data:
try:
data = json.loads(data)
print("企業數據", type(data), data)
return HttpResponse(data)
except ValueError as e:
print(str(e))
else:
return HttpResponse("no data")
