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)