zoukankan      html  css  js  c++  java
  • 关于格式转换

    关于格式

    1.json

    dict = json.loads(str)
    str = json.dumps(dict)
    

    2.pickle

    pickle模块是python的标准模块,提供了对于python数据的序列化操作,可以将数据转换为bytes类型,其序列化速度比json模块要高。

    • pickle.dumps() 将python数据序列化为bytes类型

    • pickle.loads() 将bytes类型数据反序列化为python的数据类型

      import pickle

      d = {'1': {'count': 10, 'selected': True}, '2': {'count': 20, 'selected': False}}
      s = pickle.dumps(d)
      s
      b'x80x03}qx00(Xx01x00x00x001qx01}qx02(Xx05x00x00x00countqx03K Xx08x00x00x00selectedqx04x88uXx01x00x00x002qx05}qx06(hx03Kx14hx04x89uu.'
      pickle.loads(s)
      {'1': {'count': 10, 'selected': True}, '2': {'count': 20, 'selected': False}}

    3.base64

    python标准库中提供了base64模块,用来进行转换

    • base64.b64encode() 将bytes类型数据进行base64编码,返回编码后的bytes类型

    • base64.b64deocde() 将base64编码的bytes类型进行解码,返回解码后的bytes类型

      接pickle测试

      import base64
      s
      b'x80x03}qx00(Xx01x00x00x001qx01}qx02(Xx05x00x00x00countqx03K Xx08x00x00x00selectedqx04x88uXx01x00x00x002qx05}qx06(hx03Kx14hx04x89uu.'
      b = base64.b64encode(s)
      b
      b'gAN9cQAoWAEAAAAxcQF9cQIoWAUAAABjb3VudHEDSwpYCAAAAHNlbGVjdGVkcQSIdVgBAAAAMnEFfXEGKGgDSxRoBIl1dS4='
      base64.b64decode(b)
      b'x80x03}qx00(Xx01x00x00x001qx01}qx02(Xx05x00x00x00countqx03K Xx08x00x00x00selectedqx04x88uXx01x00x00x002qx05}qx06(hx03Kx14hx04x89uu.'

      cart_str = request.COOKIES.get('cart') #从redis取出的时str格式

      解析

      cart_bytes = cart_str.encode() # str -> bytes
      cart_bytes2 = base64.b64decode(cart_str) # b64decode(byes类型)
      cart_dict = pickle.loads(cart_bytes)

    4.只要是从redis往外取值,取出来的都是bytes格式. redis保存的键值对都是字符串格式.

    5.cookie只能保存字符串格式

  • 相关阅读:
    关于桌面的图片打开很慢的解决方法
    用c#进行递归组合
    ajax,js,css 入门页面
    择日宣判此案,却常再无下文
    共享软件的明确定义
    [转]大逃亡,还没出来呢
    如何收集带有附件的网页
    送一份自家产的软件给园内的兄弟姐妹作“福利”
    [转]评蒙牛内幕
    蓝侠==la*uan,破解中国共享软件联盟著名灌水专家“蓝侠””
  • 原文地址:https://www.cnblogs.com/bsth/p/10220373.html
Copyright © 2011-2022 走看看