Python 實現將物件轉成字典

2021-08-21 07:47:26 字數 1436 閱讀 3512

在程式設計中,常常需要把乙個物件轉換成乙個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的內部實現。...