python model物件轉為dict資料

2022-05-04 19:03:21 字數 848 閱讀 8442

在介面通訊裡經常遇到這種需求,需要將物件的欄位名和值均傳至介面,

user = user.objects.get(id=1)

笨方法1,沒錯,我這樣寫過:

di = {}

di['username'] = user.username

di['email'] = user.email

...... # 諸多賦值

笨方法2,沒錯,我也這樣寫過:

di = {}

all_fields = user._meta.get_all_field_names()

special_fields = ['is_active', 'is_stuff']

for i in special_fields:

try:

all_fields.remove(i)

except:

pass

for field in all_fields:

di[field] = getattr(user, field)

!!!正確的方法,翻原始碼時遇到的,最喜歡這種命名,看名字就知道了怎樣用和返回值,看到它時又感覺django暖暖的,很貼心~:

from django.forms.models import model_to_dict

di = model_to_dict(user, exclude=['is_active', 'is_stuff'])

原始碼:def model_to_dict(instance, fields=none, exclude=none):

引數instance是物件例項,fields是指定需要哪些字段,exclude是指定排除哪些字段,exclude比fields優先順序高。

陣列轉為物件

1.js裡將兩個陣列轉為物件,第乙個陣列為key,第二個為value。如 1,2,5 和 18,8,6 轉換成物件。2.js裡將多個陣列轉為物件,每個陣列只有兩個值,轉成的物件以每個陣列裡的首位為key,第二位為value。如 a,1 和 b,2 c,3 轉換成物件。只要使用underscore.j...

js轉為json物件

這個this.type.processparams是獲取到的js字串資料,下面方法將其轉化為json物件 this.paramslist eval this.type.processparams 避免unexpected token u in json at position 0 這種報錯出現 或者...

C DataTable轉為物件或物件列表

需求 從datatable中直接生成指定類的物件或物件列表 使用 datatable.tolistmodel using system using system.collections.generic using system.data using system.linq using system....