在程式設計中,常常需要把乙個物件轉換成乙個json或是乙個字典型別。在使用sqlalchemy時,定義的表物件需要把他們轉換成字典型別,字典到json的格式轉換就很方便了
def to_dict(dumyself):
result = {}
for a in dir(dumyself):
# filter inner field by fieldname
if a.startswith('_') or a == 'metadata':
continue
v = getattr(dumyself, a)
# filter inner field by value type
if callable(v):
continue
if type(v) not in (types.nonetype, types.inttype, types.longtype, types.stringtype, types.unicodetype):
continue
result[a] = getattr(dumyself, a)
return result
dir() 函式不帶引數時,返回當前範圍內的變數、方法和定義的型別列表;帶引數時,返回引數的屬性、方法列表。過濾掉_(下劃線)開頭的屬性、方法,過濾掉metadata,過濾掉函式方法。使用getattr()獲取對應的屬性值,並寫入到字典中,最終返回
base = declarative_base()
base.to_dict = to_dict
class miner(base):
__tablename__ = 'miners_t'
id = column(integer, primary_key=true)
name = column(string(48), nullable=false, index=true)
ip = column(string(20), nullable=false) # ip
port = column(integer, nullable=false) # port
domain_id = column(integer) # domain
location_id = column(integer, index=true)
deleted = column(integer, nullable=false, server_default="0")
created_at = column(integer, nullable=false)
_i = index("ip_port_idx", poolx_ip, poolx_port)
物件轉字典小結:
1.過濾屬性名和屬性型別,得到符合要求的字段
2.獲取字段對應的值
3.按照格式填充值
將物件轉成byte
public kcdataformatter 將dataset格式化成位元組陣列byte dataset物件 位元組陣列 public static byte getbinaryformatdata dataset dsoriginal 將dataset格式化成位元組陣列byte,並且已經經過壓縮 ...
iava 實現將office 檔案轉成pdf
做乙個專案需要檔案預覽效果,於是將office 檔案轉成pdf 進行預覽,但是在網上找了很多發現很多大神都是用openoffice實現的,本地還要安裝,感覺有點麻煩,難道就沒有第三發就jar支援麼,於是乎找了很久很久終於找到了一片部落格 位址點這裡 com.jacob jacob 1.18 m2 s...
Python字典物件實現原理
字典型別是python中最常用的資料型別之一,它是乙個鍵值對的集合,字典通過鍵來索引,關聯到相對的值,理論上它的查詢複雜度是 o 1 d d c 3 d 在字串的實現原理文章中,曾經出現過字典物件用於intern操作,那麼字典的內部結構是怎樣的呢?pydictobject物件就是dict的內部實現。...