python 通用字典方法
版本1
方法
# 不传返回所有属性,传入props只返回传入的对应属性
def m_dict(obj, props=[]):
result = {}
target = obj if len(props)== else props
for i in target:
try:
result[i] = getattr(obj, i) if hasattr(obj, i) else obj[i]
except:
pass
return result
用法
print m_dict(对象, props=[属性1, 属性2])
可传入orm对象,sql查询结果,字典
如传入props,则返回传入的元素构成字典
不传props,则返回所有元素构成的字典
版本2
方法
# 不传返回所有属性,传入props只返回传入的对应属性
def m_dict(obj, props=[]):
result = {}
temp = obj.__dict__ if hasattr(obj, '__dict__') else obj
target = temp if len(props)==0 else props
for i in target:
if not i.startswith('_'):
try:
result[i] = getattr(obj, i) if hasattr(obj, i) else obj[i]
except:
pass
return result
版本2测试
orm
session = DBSession()
spiders = session.query(SpiderRule).filter(SpiderRule.state==2)
for spider in spiders:
print m_dict(spider,props=['id', 'name'])
print m_dict(spider)

dict
a = {
'a':1,
'b':2,
'c':3
}
print m_dict(a,'a')
print m_dict(a)

python 通用字典方法的更多相关文章
- Python dict字典方法完全攻略(全)
我们知道,Python 字典的数据类型为 dict,我们可使用 dir(dict) 来查看该类型包含哪些方法,例如: >>> dir(dict)['clear', 'copy', ' ...
- Python之字典方法
def clear(self): # 清除所有内容 """ D.clear() -> None. Remove all items from D. "&q ...
- python 基础 字典
字典操作 字典一种key - value 的数据类型 特性: 无顺序 去重 查询速度快,比列表快多了 比list占用内存多 语法: info = { 'abc001': "Ben" ...
- Python——字典与字典方法
字典是一种通过名字或者关键字引用的得数据结构,其键可以是数字.字符串.元组,这种结构类型也称之为映射.字典类型是Python中唯一內建的映射类型,基本的操作包括如下: (1)len():返回字典中键— ...
- Python基础 第四章 字典(2)字典方法&章小结
1. clear 方法clear删除所有的字典项,就地执行,什么都不返回(或者说返回None) d = {} d['name'] = 'Gumby' d['age'] = 42 print(d) re ...
- python将字典列表导出为Excel文件的方法
将如下的字典列表内容导出为Excel表格文件形式: 关于上图字典列表的写入,请参考文章:https://blog.csdn.net/weixin_39082390/article/details/ ...
- Python常用数据结构-字典——2.1 字典方法 keys()
python字典常用方法: keys() # 获取所有的键 values() # 获取所有的值 items() # 获 ...
- Python 迭代器 & __iter__方法
转载来自: http://blog.csdn.net/bluebird_237/article/details/38894617 迭代器就是重复地做一些事情,可以简单的理解为循环,在python中实现 ...
- think in python 11 字典
字典 字典类似于列表,但更加通用 键值对 ,字典是 键与值之间的映射,每个键都映射到一个值上 dict可以创建一个不包含任何项的字典 eng2sp = dict() print eng2sp 还可以给 ...
随机推荐
- grunt-inline:一个资源内嵌插件
一.插件简介 将引用的外部资源,如js.css.img等,内嵌到引用它们的文件里去. 二.使用场景 在项目中,出于某些原因,有的时候我们需要将一些资源,比如js脚本内嵌到页面中去.比如我们的html页 ...
- Sqlserver_分组
create table orders ( id int, orderName varchar() ) go create table cars ( id ,) , ordersid int, pna ...
- docker-compose 部署 MySql
信息: Docker版本($ docker --version):Docker版本18.03.1-ce,版本9ee9f40 系统信息:Windows10专业版 mysql挂载在Docker的volum ...
- OpenGL学习(3)——Shader
之前已经接触过Vertex Shader和Fragment Shader,这次学习如何编写Shader并封装成类. Shader源码主要有四部分: 版本声明 #version xxx core: 使用 ...
- Cloud Native Weekly | Kubernetes 1.13发布
云原生一周精选 1——Kubernetes 1.13发布 2——Kubernetes首次出现重大安全漏洞 3——Docker和微软公司推出云原生应用的部署规范 4——谷歌推出beta版本的Cloud ...
- DRF03
为了方便接下来的操作,需要在admin站点创建一个管理员. python manage.py createsuperuser 可在setting.py中修改admin站点语言, LANGUAGE_CO ...
- 第三次作业--导入excel表格(完整版)
031302322 031302316 将教师排课表导入系统 使用powerdesigner设计数据库表格 设计概念模型 打开new -> Conceptual Data Model创建概念模型 ...
- ElasticSearch 2 (3) - Breaking Changes
ElasticSearch 2.1.1 (3) - Breaking Changes Search Changes search_type = scan Deprecated GET /my_ind ...
- _stdcall 和 _cdecl
今天遇到一个问题用C++编写一个动态链接库生成的文件为dll.dll,用在visual stdio 2010调用这个dll 调用形式:[DllImport("dll.dll")] ...
- Rabbitmq基本原理(转)
https://www.cnblogs.com/jun-ma/p/4840869.html