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文件函數
- 代碼
1.py
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)))
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)))
import json
# json.dump()函數的使用,將json信息寫進文件
json_info = "{'age': '12'}"
file = open('1.json','w',encoding='utf-8')
json.dump(json_info,file)
import json
# json.load()函數的使用,將讀取json信息
file = open('1.json','r',encoding='utf-8')
info = json.load(file)
print(info)