真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網站制作重慶分公司

python中model的objects對象怎么轉json

這篇文章主要介紹了python中model的objects對象怎么轉json的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇python中model的objects對象怎么轉json文章都會有所收獲,下面我們一起來看看吧。

創(chuàng)新互聯(lián)服務項目包括常德網站建設、常德網站制作、常德網頁制作以及常德網絡營銷策劃等。多年來,我們專注于互聯(lián)網行業(yè),利用自身積累的技術優(yōu)勢、行業(yè)經驗、深度合作伙伴關系等,向廣大中小型企業(yè)、政府機構等提供互聯(lián)網行業(yè)的解決方案,常德網站推廣取得了明顯的社會效益與經濟效益。目前,我們服務的客戶以成都為中心已經輻射到常德省份的部分城市,未來相信會繼續(xù)擴大服務區(qū)域并繼續(xù)獲得客戶的支持與信任!

# objects_to_json: 將 model對象 轉化成 json

# json_to_objects: 將 將反序列化的json 轉為 model 對象

def json_field(field_data):

"""

將字典的鍵值轉化為對象

:param field_data:

:return:

"""

if isinstance(field_data, str):

return "\"" + field_data + "\""

elif isinstance(field_data, bool):

if field_data == 'False':

return 'false'

else:

return 'true'

elif isinstance(field_data, unicode):

return "\"" + field_data.encode('utf-8') + "\""

elif field_data is None:

return "\"\""

else:

return "\"" + str(field_data) + "\""

def json_encode_dict(dict_data):

"""

將字典轉化為json序列

:param dict_data:

:return:

"""

json_data = "{"

for (k, v) in dict_data.items():

json_data = json_data + json_field(k) + ':' + json_field(v) + ', '

json_data = json_data[:-2] + "}"

return json_data

def json_encode_list(list_data):

"""

將列表中的字典元素轉化為對象

:param list_data:

:return:

"""

json_res = "["

for item in list_data:

json_res = json_res + json_encode_dict(item) + ", "

return json_res[:-2] + "]"

def objects_to_json(objects, model):

"""

將 model對象 轉化成 json

example:

1. objects_to_json(Test.objects.get(test_id=1), EviewsUser)

2. objects_to_json(Test.objects.all(), EviewsUser)

:param objects: 已經調用all 或者 get 方法的對象

:param model: objects的 數(shù)據(jù)庫模型類

:return:

"""

from collections import Iterable

concrete_model = model._meta.concrete_model

list_data = []

# 處理不可迭代的 get 方法

if not isinstance(object, Iterable):

objects = [objects, ]

for obj in objects:

dict_data = {}

print concrete_model._meta.local_fields

for field in concrete_model._meta.local_fields:

if field.name == 'user_id':

continue

value = field.value_from_object(obj)

dict_data[field.name] = value

list_data.append(dict_data)

data = json_encode_list(list_data)

return data

def json_to_objects(json_str, model):

"""

將 將反序列化的json 轉為 model 對象

example:

Test model 預先定義

test_str = '[{"test_id":"0", "test_text":"hello json_to_objects"}]'

json_to_objects(json_str, model)

:param json_str:

:param model: objects的 數(shù)據(jù)庫模型類

:return:

"""

import ast

json_list = ast.literal_eval(json_str)

obj_list = []

field_key_list = [field.name for field in model._meta.concrete_model._meta.local_fields]

for item in json_list:

obj = model()

for field in item:

if field not in field_key_list:

raise ValueError('數(shù)據(jù)庫無 ' + field + ' 字段')

setattr(obj, field, item[field])

obj_list.append(obj)

return obj_list 

關于“python中model的objects對象怎么轉json”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“python中model的objects對象怎么轉json”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


文章名稱:python中model的objects對象怎么轉json
文章分享:http://weahome.cn/article/giisie.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部