from copy import deepcopy

from str import basestring

def enserializable(model):

"""

本函数用于将对象可序列化,且返回的字典都是新的(deepcopy)

"""

if isinstance(model, dict):

model = deepcopy(model)

to_pop = []

for k in model:

# 过滤

if isinstance(k, basestring) and (k.startswith(‘_‘) or k.isupper()):

to_pop.append(k)

continue

# 递归

else:

model[k] = enserializable(model[k])

for k in to_pop:

model.pop(k)

return model

elif hasattr(model, ‘__dict__‘):

return enserializable(model.__dict__)

elif isinstance(model, (list, tuple)):

return [enserializable(m) for m in model]

else:

return model

原文:http://my.oschina.net/lionets/blog/380934

python序列化对象的函数_使 Python 对象可序列化的函数相关推荐

  1. python输入esc退出循环_使python在按ESC键时立即退出程序

    在正常输入下没有办法做到这一点.raw_input一次读取整行.在 在某些(极少数)情况下,您可以这样做:message = '' while True: ch = sys.stdin.read(1) ...

  2. python开发效率高吗_提升python开发者工作效率的六个库,你知道几个?

    无论你现在是否从事Python开发,以后想从事Python,你最好了解一下几个库,它能让你无论是学习,还是职业进阶都有很大帮助. Python 凭借其易用的特点,已经被工业界和学术界广泛采用.另一方面 ...

  3. python语音控制电脑程序_用Python编程实现语音控制电脑_天津SEO

    天津SEO 电脑面前的你,是否也希望能让电脑听命于你? 当你累的时候,只需说一声"我累了",电脑就会放着优雅的轻音乐来让你放松. 或许你希望你在百忙之中,能让电脑郎读最新的NBA比 ...

  4. python helper函数_使函数定义以python文件顺序独立

    使函数定义以python文件顺序独立 我使用Python CGI. 我无法在定义函数之前调用它. 在Oracle PL / SQL中,存在"转发声明"的技巧:将所有函数都命名为最顶 ...

  5. python 参数类型的多态_【Python】面向对象:类与对象\封装\继承\多态

    六.Python面向对象--类与对象\封装\继承\多态 1.什么是面向对象编程 1.1 程序设计的范式:程序可控,易于理解 1.2 抽象并建立对象模型 1.3 程序是不同对象相互调用的逻辑.每个对象在 ...

  6. python3中zip函数_用python实现矩阵转置,python3 中zip()函数

    前几天群里有同学提出了一个问题:手头现在有个列表,列表里面两个元素,比如[1, 2],之后不断的添加新的列表,往原来相应位置添加.例如添加[3, 4]使原列表扩充为[[1, 3], [2, 4]],再 ...

  7. python一切皆对象的理解_在 Python 中万物皆对象

    在 Python 中一切都是对象,并且几乎一切都有属性和方法.所有的函数都有一个内置的 __doc__ 属性,它会返回在函数源代码中定义的 doc string:sys 模块是一个对象,它有一个叫作 ...

  8. python一些常用函数_【python】常用的一些内置函数

    1.cmp cmp(A,B)函数,比较A,B的大小,如果A大于B,返回1,A小于B返回-1,A等于B返回0 print cmp(12,33) >>>-1 print cmp(&quo ...

  9. python四大高阶函数_详谈Python高阶函数与函数装饰器(推荐)

    一.上节回顾 Python2与Python3字符编码问题,不管你是初学者还是已经对Python的项目了如指掌了,都会犯一些编码上面的错误.我在这里简单归纳Python3和Python2各自的区别. 首 ...

最新文章

  1. ie与firefox 关于js 的差别(转载)
  2. C++自学11:命名空间(using namespace)
  3. 基于图像gist特征的NWPU-RESISC45数据分类实战
  4. 大数据与机器学习:实践方法与行业案例.1.4 本章小结
  5. DL-C_1_week_1_1
  6. vbs整人代码蓝屏_求大量VBS整人代码.
  7. Visio 画流程图 入门
  8. 概率论的学习和整理10:古典概型 和 二项分布(N重伯努利试验)
  9. win10-11全版本下载地址MSDN纯净版ISO-20220217更新
  10. linux安装智能输入法,Ubuntu中文智能拼音输入法配置
  11. Excel文档瘦身,一键压缩xlsx文件中所有的图片,解决excel文件太大的问题
  12. 逆天神器!“国外“最新版本,直接一键破解所有WiFi密码,傻眼了!
  13. Linux:配置本地yum源仓库
  14. 【springboot】报错Resolved [org.springframework.http.converter.HttpMessageNotWritableException: No conve
  15. 南京地铁6号线双龙街出入口线区间盾构段开工
  16. 用python给pdf批量添加水印,并给pdf加密
  17. Celery介绍——手机短信异步发送
  18. 8086CPU指令系统 串操作指令和处理机控制指令
  19. Alexa Fluor 488标记亲和纯化驴抗兔IgG(H+L)二抗说明书
  20. VMware ESXi安装NVIDIA GPU显卡硬件驱动和配置vGPU

热门文章

  1. python list index方法,Python List.index()方法
  2. 模为2的逆元是什么_两种求模m逆元的方法
  3. javascript 唯一值的集合 Set对象
  4. 基础线性规划实现---python
  5. Brief C Programs of the Bombs
  6. 【OpenCV 例程200篇】67. 空间域图像增强的综合应用
  7. 鸿蒙系统中的 JS 开发框架
  8. 国产主可控的嵌入式仿真测试软件SkyEye与可信编译器L2C的核心翻译介绍
  9. 用递归与分治策略求解网球循环赛日程表_算法设计:分治法(比赛日程安排)...
  10. python opencv轮廓检测_OpenCV 轮廓检测的实现方法