Decode-Encode、json dump - json load

Decode-Encode

字符串在Python內部的表示是unicode編碼,因此,在做編碼轉換時,通常需要以unicode作爲中間編碼,即先將其他編碼的字符串解碼(decode)成unicode,再從unicode編碼(encode)成另一種編碼。

decode的作用是將其他編碼的字符串轉換成unicode編碼,如str1.decode(‘gb2312’),表示將gb2312編碼的字符串str1轉換成unicode編碼。
encode的作用是將unicode編碼轉換成其他編碼的字符串,如str2.encode(‘gb2312’),表示將unicode編碼的字符串str2轉換成gb2312編碼。

s=u"中文" print s 會提示:UnicodeEncodeError:‘ascii’ codec can’t encode
characters in position 0-1: ordinal
notinrange(128)。這是因爲UliPad在英文WindowsXP上的控制檯信息輸出窗口是按照ascii編碼輸出的(英文系統的默認編碼是ascii),而上面代碼中的字符串是Unicode編碼的,所以輸出時產生了錯誤。將最後一句改爲:prints.encode(‘gb2312’),則能正確輸出“中文”兩個字。
prints.encode(‘utf8’)
則輸出:\xe4\xb8\xad\xe6\x96\x87,這是控制檯信息輸出窗口按照ascii編碼輸出utf8編碼的字符串的結果。
unicode(str,‘gb2312’)與str.decode(‘gb2312’)是一樣的,都是將gb2312編碼的str轉爲unicode編碼

json dump - json load

  • 概念理解

1、json.dumps()和json.loads()是json格式處理函數(可以這麼理解,json是字符串)
  (1)json.dumps()函數是將一個Python數據類型列表進行json格式的編碼(可以這麼理解,json.dumps()函數是將字典轉化爲字符串)
  (2)json.loads()函數是將json格式數據轉換爲字典(可以這麼理解,json.loads()函數是將字符串轉化爲字典)
2、json.dump()和json.load()主要用來讀寫json文件函數

import json

# json.dumps()函數的使用,將字典轉化爲字符串
dict1 = {"age": "12"}
json_info = json.dumps(dict1)
print("dict1的類型:"+str(type(dict1)))
print("通過json.dumps()函數處理:")
print("json_info的類型:"+str(type(json_info)))

在這裏插入圖片描述
2.py

import json

# json.loads函數的使用,將字符串轉化爲字典
json_info = '{"age": "12"}'
dict1 = json.loads(json_info)
print("json_info的類型:"+str(type(json_info)))
print("通過json.dumps()函數處理:")
print("dict1的類型:"+str(type(dict1)))

在這裏插入圖片描述
3.py

import json

# json.dump()函數的使用,將json信息寫進文件
json_info = "{'age': '12'}"
file = open('1.json','w',encoding='utf-8')
json.dump(json_info,file)

在這裏插入圖片描述
4.py

import json

# json.load()函數的使用,將讀取json信息
file = open('1.json','r',encoding='utf-8')
info = json.load(file)
print(info)

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章