压缩数据并写入本地文件
import random
import msgpack
def mock_res(bitnum: int):
res = {}
for i in range(2**bitnum):
val = random.random()
key = bin(i)[2:].zfill(bitnum)
res[key] = val
return res
qnum = 30
data = mock_res(qnum)
packed_data = msgpack.packb(data, use_bin_type=True)
with open("data.msgpack", "wb") as f:
f.write(packed_data)
将本地文件读出并解压成python对象
import msgpack
with open('data.msgpack', 'rb') as f:
raw = f.read()
data = msgpack.unpackb(raw, strict_map_key=False)
压缩数据并上传到云存储
import random
import msgpack
def mock_res(bitnum: int):
res = {}
for i in range(2**bitnum):
val = random.random()
key = bin(i)[2:].zfill(bitnum)
res[key] = val
return res
def saveByApi(obj_host, obj_key, data):
value_as_bytes = msgpack.packb(data, use_bin_type=True)
value_as_a_stream = BytesIO(value_as_bytes)
fileUrl = f'http://{obj_host}/{obj_key}'
res = requests.post(fileUrl, files={'file': value_as_a_stream}, headers = {'accept': 'application/json'}, timeout=1800)
res_data = json.loads(res.content)
print(res_data)
qnum = 30
data = mock_res(qnum)
saveByApi('192.168.9.112:7333', 'data.msgpack', data)
读出云上文件并解压成python对象
import msgpack
def read(obj_host, obj_key):
fileUrl = f'http://{obj_host}/{obj_key}'
res = requests.get(fileUrl)
if res.content:
data = msgpack.unpackb(res.content, strict_map_key=False)
read('192.168.9.112:7333', 'data.msgpack')