python數據類型之間相互轉換!
1.字節和字符串之間轉換:
》1. bytes轉str類型:
》 2.str轉bytes類型:
# 1.str to bytes 字符串轉字節 byte = bytes('you'.encode('utf8')) print(byte) # b'you' # 2.bytes to str 字節轉字符串 st = str(byte, encoding='utf8') print(st) # you
》3.使用encode(編碼),decode(解碼)進行字符串和字節之間的轉換:
# str to bytes 字符串轉為字節 str.encode(str) # bytes to str 字節轉為字符串 bytes.decode(bytes)
2.base64編碼:
引用廖雪峰大神的對base64的介紹:Base64是一種用64個字符來表示任意二進制數據的方法。如果要編碼的二進制數據不是3的倍數,最后會剩下1個或2個字節怎么辦?Base64用\x00字節在末尾補足后,再在編碼的末尾加上1個或2個=號,表示補了多少字節,解碼的時候,會自動去掉。
》1.使用python內置的base64直接進行base64的編碼:
import base64 z = base64.b64encode(b'binary\x00string') print(z) # b'YmluYXJ5AHN0cmluZw=='
》2.由於標准的Base64編碼后可能出現字符+和/,在URL中就不能直接作為參數,所以又有一種"url safe"的base64編碼,其實就是把字符+和/分別變成-和_:
>>> base64.b64encode(b'i\xb7\x1d\xfb\xef\xff') b'abcd++//' >>> base64.urlsafe_b64encode(b'i\xb7\x1d\xfb\xef\xff') b'abcd--__' >>> base64.urlsafe_b64decode('abcd--__') b'i\xb7\x1d\xfb\xef\xff'
》》總結:Base64是一種任意二進制到文本字符串的編碼方法,常用於在URL、Cookie、網頁中傳輸少量二進制數據!
2.json詳解:
》 1.json.dumps()
json.dumps 用於將 Python 對象編碼成 JSON 字符串: python對象→json字符串
import json data = [ { 'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4, 'e' : 5 } ] json = json.dumps(data) print (json) # [{"a": 1, "c": 3, "b": 2, "e": 5, "d": 4}]
》 2.json.loads()
json.loads 用於解碼 JSON 數據。該函數返回 Python 字段的數據類型: json字符串→ python對象
import json data = {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5} jso = json.dumps(data) print(type(jso)) # <class 'str'> print(jso) # {"d": 4, "c": 3, "b": 2, "a": 1, "e": 5} load_json = json.loads(jso) print(type(load_json)) # <class 'dict'> print(load_json) # {'d': 4, 'c': 3, 'b': 2, 'a': 1, 'e': 5}
load和dump主要是用於文件的讀取,和寫入:
》 3.json.dump()
用於json文件的寫入:
with open('data.json', 'w') as f: json.dump(data, f) # Reading data back with open('data.json', 'r') as f: data = json.load(f)
》 4.json.load()
用於讀取json文件的數據:
with open('data.json', 'w') as f: json.dump(data, f) # Reading data back with open('data.json', 'r') as f: data = json.load(f)
